PHPExcel:写入期间无法使用缓存

标签 php symfony phpexcel

我在使用 PhpExcel 编写 xls (xlsx) 文件时遇到一些内存问题。我曾尝试使用缓存,但在编写新文档时它似乎不起作用。

$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize'  => '8MB'
                  );
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

库更新到当前版本 (v1.8.1) 后,问题有所改善,但我仍然只能准备和导出一个包含 8 列和 15000 - 20000 行的文件(20000 行 cache_in_memory_gzip) 而不增加内存限制。不幸的是,就我而言,这不是充分的解决方案。

缓存方法也许可以让我提前准备更多的条目,但在实际的写入方法中似乎什么都不重要。

    $file = new PHPExcel();
    // Prepare data ...
    $writer = PHPExcel_IOFactory::createWriter($file, 'Excel2007');
    $writer->save($pathname); // More memory required

最佳答案

最后我们切换到box/spout . 我不能说我已经测试了它的全部功能,但在 800 000 行之后我已经厌倦了。

关于PHPExcel:写入期间无法使用缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38249936/

相关文章:

PHPExcel,日期解析不正确

php - 如何在php电子表格图表中设置数据标签的位置

php - 查询和表 - MAX 和 Join

css - 将类属性添加到 symfony 表单生成器行 div

php - Facebook风格的多图片上传

symfony - Symfony2 中的 Doctrine2 (Doctrine 2.1) 急切加载

php - 重定向到下一个/路由操作,而不是用户登录/注册后的最后一个 symfony security

php - 使用 listWorksheetNames() 时使用 phpexcel 读写

php - 使用 CSS 将屏幕分成两半

PHP, MySQL - 简单的搜索结果不需要