为什么打开 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尽可能快和低内存?
或者在磁盘上拥有尽可能小的文件大小?"
我使用 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尽可能快和低内存? 或者在磁盘上拥有尽可能小的文件大小?"