C++でワークブックの圧縮レベルを調整する
Contents
[
Hide
]
ワークブックの圧縮レベルを調整する
開発者は、より大きなワークブックを扱うときに、ファイルサイズよりも処理時間を優先するか、その逆を優先するかもしれません。Aspose.Cellsは、ワークブックの圧縮レベルを設定するために使用できるOoxmlCompressionType列挙型を提供します。 OoxmlCompressionType列挙型は、次のメンバーを提供します。
- レベル1:最も速くて効果の低い圧縮。
- レベル2:レベル1よりもやや遅いが、より優れています。
- レベル3:レベル2よりもやや遅いが、より優れています。
- レベル4:レベル3よりもやや遅いが、より優れています。
- レベル5:レベル4よりもやや遅く、より効果的な圧縮。
- レベル6:速度と圧縮効率の良いバランス。
- レベル7:かなり良い圧縮!
- レベル8:レベル7よりも優れた圧縮!
- レベル9:“ベスト"の圧縮、ベストは入力データストリームのサイズを最も減らすことを意味します。これは最も遅い圧縮でもあります。
次のコードスニペットは、OoxmlCompressionType列挙型の使用を示し、Level1、Level6、Level9の変換時間を比較します。また、生成されたファイルのサイズを比較することもできます。
#include <iostream>
#include <chrono>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace std::chrono;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Load the workbook
Workbook workbook(srcDir + u"LargeSampleFile.xlsx");
// Create XlsbSaveOptions object
XlsbSaveOptions options;
// Set compression level to 1 and save the workbook
options.SetCompressionType(OoxmlCompressionType::Level1);
auto start = high_resolution_clock::now();
workbook.Save(outDir + u"LargeSampleFile_level_1_out.xlsb", options);
auto stop = high_resolution_clock::now();
auto duration = duration_cast<milliseconds>(stop - start);
std::cout << "Level 1 Elapsed Time: " << duration.count() << std::endl;
// Set compression level to 6 and save the workbook
options.SetCompressionType(OoxmlCompressionType::Level6);
start = high_resolution_clock::now();
workbook.Save(outDir + u"LargeSampleFile_level_6_out.xlsb", options);
stop = high_resolution_clock::now();
duration = duration_cast<milliseconds>(stop - start);
std::cout << "Level 6 Elapsed Time: " << duration.count() << std::endl;
// Set compression level to 9 and save the workbook
options.SetCompressionType(OoxmlCompressionType::Level9);
start = high_resolution_clock::now();
workbook.Save(outDir + u"LargeSampleFile_level_9_out.xlsb", options);
stop = high_resolution_clock::now();
duration = duration_cast<milliseconds>(stop - start);
std::cout << "Level 9 Elapsed Time: " << duration.count() << std::endl;
Aspose::Cells::Cleanup();
return 0;
}