调整工作簿压缩级别
Contents
[
Hide
]
调整工作簿压缩级别
开发人员在处理较大的工作簿时可以调整工作簿的压缩级别。开发人员可以优先考虑文件大小而不是处理时间,反之亦然。 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_1、LEVEL_6和LEVEL_9的转换时间。您也可以比较生成文件的大小。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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); |