【发布时间】:2014-01-04 13:23:15
【问题描述】:
我正在尝试实现Converting single sheet in an XLS file to CSV with PHPExcel - Memory exhausted,但我仍然遇到内存问题。
想想@BT643 代码 - 我使用的 - 包含了@Mark Baker 在他的答案 (phpexcel Allowed memory size of 134217728 bytes exhausted) 编译的各种帖子中解释的大部分黄金法则。
我的 excel 文件有 61 列和大约 8000 行,所以大约有 50 万个单元格。大小 5561KB。我不希望它需要阅读“块”。
我错过了什么?
这是我正在使用的代码:
include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/IOFactory.php';
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '2GB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
$reader = PHPExcel_IOFactory::createReader('Excel5');
$reader->setReadDataOnly(true);
$reader->setLoadSheetsOnly('mytab');
$filename = 'C:/xampp/htdocs/mycode/myfile.xls';
$excel = $reader->load($filename);
$filename_fixed='myfile.csv';
$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->save($filename_fixed);
【问题讨论】:
-
您只允许此文档使用 128MB 的 RAM。你可能需要更多。
-
@Brad。
ini_set("memory_limit","256M");+ini_set('max_execution_time', 300);解决了这个问题!一堆!
标签: php memory csv memory-management phpexcel