Настройка уровня сжатия рабочей книги с помощью Node.js через C++

Настройка уровня сжатия книги

Разработчики могут настраивать уровень сжатия рабочей книги при работе с большими файлами. Разработчики могут отдавать приоритет меньшему размеру файла или времени обработки. Aspose.Cells for Node.js via C++ предоставляет перечисление OoxmlCompressionType, которое можно использовать для установки уровня сжатия рабочей книги. Перечисление OoxmlCompressionType содержит следующие члены.

  • Level1: Самое быстрое, но наименее эффективное сжатие.
  • Level2: Немного медленнее, но лучше, чем уровень 1.
  • Level3: Немного медленнее, но лучше, чем уровень 2.
  • Level4: Немного медленнее, но лучше, чем уровень 3.
  • Level5: Немного медленнее, чем уровень 4, но с лучшим сжатием.
  • Level6: Хороший баланс скорости и эффективности сжатия.
  • Level7: Очень хорошее сжатие!
  • Уровень8: Лучшее сжатие, чем на уровне 7!
  • Level9: “Лучшее” сжатие, где под лучшим понимается максимальное сокращение размера входного потока данных. Это также самое медленное сжатие.

В следующем фрагменте кода демонстрируется использование перечисления OoxmlCompressionType и сравнение времени преобразования для уровней 1, 6 и 9. Также можно сравнить размеры созданных файлов.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// Source and output directories
const sourceDir = path.join(__dirname, "data");
const outDir = path.join(__dirname, "output");

const filePath = path.join(sourceDir, "LargeSampleFile.xlsx");
const workbook = new AsposeCells.Workbook(filePath);
const options = new AsposeCells.XlsbSaveOptions();

options.setCompressionType(AsposeCells.OoxmlCompressionType.Level1);
let watch = process.hrtime();
workbook.saveAsync(path.join(outDir, "LargeSampleFile_level_1_out.xlsb"), options);
let elapsedMs = process.hrtime(watch);
console.log("Level 1 Elapsed Time: " + (elapsedMs[0] * 1e3 + elapsedMs[1] / 1e6));

watch = process.hrtime();
options.setCompressionType(AsposeCells.OoxmlCompressionType.Level6);
workbook.saveAsync(path.join(outDir, "LargeSampleFile_level_6_out.xlsb"), options);
elapsedMs = process.hrtime(watch);
console.log("Level 6 Elapsed Time: " + (elapsedMs[0] * 1e3 + elapsedMs[1] / 1e6));

watch = process.hrtime();
options.setCompressionType(AsposeCells.OoxmlCompressionType.Level9);
workbook.saveAsync(path.join(outDir, "LargeSampleFile_level_9_out.xlsb"), options);
elapsedMs = process.hrtime(watch);
console.log("Level 9 Elapsed Time: " + (elapsedMs[0] * 1e3 + elapsedMs[1] / 1e6));