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

2024-01-11

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

我的 PHP 版本 5.3.28

我还设置了 php ini 和单元缓存,请参阅下面的代码

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);

我期待您的回复。

Thanks


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

如果您看到这种情况发生,我建议您看一下Spout https://github.com/box/spout: https://github.com/box/spout https://github.com/box/spout。它是 PHPExcel 的替代品,旨在解决您的问题。您可以根据需要添加任意数量的记录,库将能够写入它们而无需任何额外的配置。

编写 XLSX 文件就是这么简单:

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

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

$writer->close();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐