PHPExcel保存模板,文件大小过大

时间:2012-11-06 19:22:19

标签: php phpexcel

版本信息:

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示例。

对于可能导致这种情况的任何想法都表示赞赏!

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

1 个答案:

答案 0 :(得分:0)

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

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

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