为什么打开 PHPExcel 生成的 xls 文件然后点击保存大小变小了?

Why when open xls file generated by PHPExcel then click save the size decreases?

我使用 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 格式文件很慢,而且已经很耗内存了

例如,所有字符串数据都保存在一个共享字符串中 table。当两个或多个单元格包含相同的字符串值时,MS Excel 会将它们都指向共享字符串 table 中的相同条目,以便字符串数据仅存储一次。 PHPExcel 不会执行此检查以查看共享字符串 table 中是否已存在字符串值,而只是创建一个新条目,因此该字符串会存储两次。这通过消除检查字符串是否已经在 table 中的开销来减少保存数据所花费的时间,但以重复成本和文件大小为代价。

关键问题是“哪个更重要?能够read/edit/write本地Excel文件在PHP?保持PHPExcel尽可能快和低内存? 或者在磁盘上拥有尽可能小的文件大小?"