【发布时间】:2013-10-22 12:22:35
【问题描述】:
当我使用这个功能时:
$objPHPExcel = PHPExcel_IOFactory::load($fileName);
在较小的 excel 文件上,这需要一段时间,但最终会在 $objPHPExcel 中得到一个广泛的数组...不幸的是,当我在一个稍大更复杂的 Ecel 文件上尝试它时,我得到:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes)
该文件是一个 xlsm 文件,大小为 1.7MB...这听起来是正确的还是发生了什么可疑的事情?
我认为这就是您需要的所有代码。我正在用完目前在本地设置的默认 WAMP。
【问题讨论】:
-
那么您尝试使用哪些用于减少 PHPExcel 内存使用的单元缓存选项?我们提供并精确记录此功能,以允许处理比内存通常允许的更大的电子表格文件
-
我专门挑选了一张要使用的工作表,并将文件从 xlsm 转换为 xlsx……这至少让我现在可以使用该工具。耶!例如: setLoadSheetsOnly( $sheetname );
-
@MarkBaker - 很荣幸能与制作这些东西的人“交谈”:)
-
我需要逐行读取 Excel 文件。当文件大小大于 11MB 时,它会一直耗尽内存。
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM和PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp都无法解决问题。我的 PHP 内存限制是 134217728 字节。