我使用PHPexcel_1.8生成Microsoft Excel 97-2003工作表(.xls)
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($myFile);
如果我打开文件并按 ctr + s (不做任何更改),大小几乎下降到50%。
答案 0 :(得分:2)
简单.... PHPExcel不会在速度和内存使用方面浪费宝贵的PHP开销资源来优化文件数据的存储;而MS Excel将通过优化存储来减少文件大小的要求。在PHP中构建本机Excel格式文件很慢并且内存已经很耗尽
作为示例,所有字符串数据都保存在共享字符串表中。当两个或多个单元格包含相同的字符串值时,MS Excel会将它们指向共享字符串表中的相同条目,以便字符串数据仅存储一次。 PHPExcel不进行此检查以查看字符串值是否已存在于共享字符串表中,而只是创建一个新条目,因此该字符串存储两次。这减少了保存数据所花费的时间,因为消除了检查的开销是表中已有的字符串,但代价是复制,因此文件大小。
关键问题是"哪个更重要?能够在PHP中读取/编辑/编写本机Excel文件?为了保持PHPExcel尽可能快速和低内存? 或者在磁盘上拥有最小的文件大小?"