Java API,它将压缩 xls 文件为 xls 格式

标签 java excel

我有一个 excel 文件,但文件大小太大, 您有什么建议可以让我们以相同的格式减小文件大小吗?

最佳答案

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

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

现在,许多这些“食谱”在某种程度上都是临时的、依赖于版本、依赖于内容并且总体上脆弱或不可靠。但这肯定有一点科学依据,因为我相信某些商业产品专门从事 XLS(或更普遍的 MS-Office)文档压缩。

虽然有一些 Java 库可以使压缩和解压缩 ZIP 文件变得更容易,或者使 XLS 文件解析或创建更容易,但我不知道有哪些库专门用于压缩 Excel 文件的唯一目的。

关于Java API,它将压缩 xls 文件为 xls 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817440/

相关文章:

VBA Excel Backup : Save copy of current workbook via VBA under a new name, 保留VBA脚本,无提示

Excel公式为依赖于其他2列(名字和姓氏)的列分配唯一值?

vba - ElseIf 语句在不应与 "or"一起时被跳过

java - 如何使用 Java 读取属性文件中的组级别值?

java - 在java中将字符串格式化为整数

java - 如何在调用存储过程时从前端设置 INOUT 参数

excel - 用一组列中的第一个非空条目填充单元格(从左到右)

excel - 使用 Shell 从 excel vba 运行 python 脚本不会执行任何操作

java - libjvm.so : cannot open shared object file: No such file or directory

java - 如何在打印时应用 CSS 样式?