Java API将以xls格式压缩xls文件

时间:2011-10-19 06:37:22

标签: java excel

我有一个excel文件,但文件大小很大, 你有任何建议,以便我们可以减少相同格式的文件大小吗?

1 个答案:

答案 0 :(得分:1)

有一些常见的技巧可以减少Excel文档的大小,同时保持Excel格式。这取决于文件的特定格式/ Excel版本。

  • 例如,将较新的“.xlsx”格式转换为.xls格式可能会引入一些功能损失,但有时会产生较小的文件(有时会更大......!)。生成的文件仍然是“Excel兼容”(尽管可能会丢失一些功能,例如文本格式化或丢失数据,例如,超过64k行等,如前所述)。
  • 对于XLSX格式,可以取消归档文件(xlsx是伪装的zip文件)并使用更激进的ZIP压缩重新压缩其内容。注意格式需要保持ZIP,但可以使用不同的设置(通过允许较慢的进程和/或更大的缓冲区,我们通常会压缩几个百分点的压缩比)。
  • 在XLS文件格式/结构本身的级别上,在某些情况下,可能会以与原始文件相比减少文件大小的方式“重新打包”文件。
  • 还有一些技巧会改变文件的有效负载内容,但不会改变它的外观。例如,通过强制空单元格与周围单元格共享相同的格式,可以通过使更多的工作表具有更少的“漏洞”来避免“稀疏表格”的低效存储。

现在,许多这些“食谱”在某种程度上是临时的,依赖于版本,依赖于内容,整体易碎或不可靠。但是必须有一点科学,因为我相信一些商业产品专门用于XLS(或更普遍的MS-Office)文档压缩。

虽然有一些java库可以更轻松地压缩和解压缩ZIP存档,或者XLS文件解析或创建更容易,但我不知道专门用于压缩Excel文件的库。