调整工作簿压缩级别

调整工作簿压缩级别

开发人员在处理较大的工作簿时可以调整工作簿的压缩级别。开发人员可以优先考虑文件大小而不是处理时间,反之亦然。 Aspose.Cells提供OoxmlCompressionType枚举,您可以使用它来设置工作簿的压缩级别。OoxmlCompressionType枚举提供以下成员。

  • LEVEL_1:速度最快,但压缩效果最差。
  • LEVEL_2:比级别1稍慢,但更好。
  • LEVEL_3:比级别2稍慢,但更好。
  • LEVEL_4:比级别3稍慢,但更好。
  • LEVEL_5:比级别4稍慢,但压缩更好。
  • LEVEL_6:速度和压缩效率的良好平衡。
  • LEVEL_7:压缩相当不错!
  • LEVEL_8:比Level7更好的压缩!
  • LEVEL_9:最好的压缩,最大程度减少输入数据流的大小。也是最慢的压缩。

以下代码片段演示了OoxmlCompressionType枚举的使用,并比较了LEVEL_1LEVEL_6LEVEL_9的转换时间。您也可以比较生成文件的大小。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the directories.
String sourceDir = Utils.Get_SourceDirectory();
String outDir = Utils.Get_OutputDirectory();
Workbook workbook = new Workbook(sourceDir + "LargeSampleFile.xlsx");
XlsbSaveOptions options = new XlsbSaveOptions();
options.setCompressionType(OoxmlCompressionType.LEVEL_1);
long startTime = System.nanoTime();
workbook.save(outDir + "LargeSampleFile_level_1_out.xlsb", options);
long endTime = System.nanoTime();
long timeElapsed = endTime - startTime;
System.out.println("Level 1 Elapsed Time: " + timeElapsed / 1000000);
startTime = System.nanoTime();
options.setCompressionType(OoxmlCompressionType.LEVEL_6);
workbook.save(outDir + "LargeSampleFile_level_6_out.xlsb", options);
endTime = System.nanoTime();
timeElapsed = endTime - startTime;
System.out.println("Level 6 Elapsed Time: " + timeElapsed / 1000000);
startTime = System.nanoTime();
options.setCompressionType(OoxmlCompressionType.LEVEL_9);
workbook.save(outDir + "LargeSampleFile_level_9_out.xlsb", options);
endTime = System.nanoTime();
timeElapsed = endTime - startTime;
System.out.println("Level 9 Elapsed Time: " + timeElapsed / 1000000);