我已经集成了 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(使用前将#替换为@)