为什么打开phpexcel生成的XLS文件时,请单击“保存大小”减小



我使用phpexcel_1.8生成Microsoft Excel 97-2003工作表(.xls)

 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($myFile);

如果我打开文件并按 ctr s (不进行任何更改),大小几乎下降到50%。

简单.... phpexcel不会在速度和内存使用中浪费宝贵的php开销资源来优化文件数据的存储;而MS Excel将通过优化存储来减少文件要求。在PHP中构建本机Excel格式文件很慢,并且已经饥饿的内存

作为此示例,所有字符串数据均在共享字符串表中维护。当两个或多个单元格包含相同的字符串值时,MS Excel将它们都指向共享字符串表中的同一条目,因此字符串数据仅存储一次。phpexcel不执行此检查以查看共享字符串表中是否已经存在字符串值,而只是创建一个新的条目,因此字符串已存储两次。这减少了通过消除检查的开销来保存数据所花费的时间,这是表格中的字符串,但要复制,因此是文件。

关键问题是"哪个更重要?能够在PHP中读取/编辑/编写本机Excel文件? 还是在磁盘上具有最小的可能文件?"

最新更新