1

版本信息:

PHPExcel - 1.7.8

linux - Linux 版本 2.6.18-274.12.1.el5 (mockbuild@builder10.centos.org) (gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-51))

PHP 版本 - 5.3.17

我有一个用于创建每周报告的销售报告模板。一切正常,除了输出文件的大小。

输入模板的大小只有 249kb,而输出文件的大小却超过了 4mb。

总共有 97 个单元格中添加了任何数据。当我手动插入数据时,大小保持正确。

原始模板大小 - 254,464

手动输入输出大小 - 254,464

PHPExcel 输出大小 - 4,230,656

我的代码基于 30template.php 示例。

感谢您对可能导致此问题的任何想法!

如果需要任何其他信息,我会尽我所能回复。

4

1 回答 1

0

如果工作表包含您期望的数据,那么您真的不应该担心这一点。4MB 对于文件来说并不是特别大。

PHPExcel 不是文件编辑器:它不会简单地在原始文件中添加一些额外的单元格,而这些单元格可能只是在结果大小上添加几个字节。它加载文件,将其内容转换为 PHPExcel 对象;你修改那个 PHPExcel 对象;当您保存时,它会从该 PHPExcel 对象的内容中写入一个新文件。Excel 本身在存储电子表格数据的方式方面有很多不同的选项,并且在保存时可以优化资源以极其有效地存储它们。PHPExcel 以通用方式存储,无需确定如何最好地将生成的文件优化到最小大小的开销。例如,PHPExcel 可能会保存工作簿中未使用的其他默认样式,而 Excel 本身可能会丢弃这些样式。您没有提及您使用的是哪种格式:.xlsx 或 .xls ... 前者是 zip 压缩的;但是 ZipArchive 使用的 zip 压缩方法可能与 Excel 使用的压缩方法不匹配。

因此,影响保存文件大小的因素有很多:通常更重要的是内容正确。

于 2012-11-06T21:01:23.607 回答