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