致命错误:使用phpexcel写入xlsx文件时出现内存不足(分配1979711488)(尝试分配131072字节)错误

我使用phpexcel集成xlsx文件以便从数据库写入.我想在xlsx文件中写3,00,000条记录.但直到致命错误:内存不足(分配1979711488)(试图分配131072字节)

我的PHP版本5.3.28

另外我设置php ini和cell cache看下面我的代码

ini_set('max_execution_time',-1);
ini_set('memory_limit', '-1'); 
$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_in_memory_gzip;
$cacheSettings = array( ' memoryCacheSize ' => '-1');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

我很期待你的回复.

谢谢

解决方法:

因为您正在尝试编写大量记录,所以即使您使用PHPExcel提供的缓存技术,您仍可能遇到OutOfMemory错误.或者你的脚本需要很长时间才能完成(太长时间无法接受).

如果这是你看到的事情,我建议你看看Spouthttps://github.com/box/spout.它是PHPExcel的替代品,它是为了解决你的问题而创建的.您可以根据需要将其保存为多个记录,库可以在不需要任何额外配置的情况下编写它们.

编写XLSX文件很简单:

$writer = WriterFactory::create(Type::XLSX);
$writer->openToFile($filePath);

while (...) {
    $writer->addRow($singleRow);
}

$writer->close();
上一篇:PHPExcel导出表格乱码解决


下一篇:使用PHPExcel复制剪切并将行集从一个位置粘贴到Excel工作表中的另一个位置