【问题标题】:PHPEXCEL library takes a long time to loadPHPEXCEL 库需要很长时间才能加载
【发布时间】:2012-06-07 17:21:59
【问题描述】:

我使用 codeplex 的 phpexcel 库将大量数据导出到 excel 文件 (2007)。

问题是执行需要很长时间...我使用了作为库的一部分存在的内存缓存选项和缓存目录选项,并且在返回数据后我取消了对象的设置。
我也觉得我应该注意,在我的应用程序中,我使用了一些变量来计算循环中包含的行数。
任何使脚本更快或更高效的想法或概念都会很棒。

【问题讨论】:

    标签: php phpexcel codeplex


    【解决方案1】:

    我有时必须检查他们的网站以了解性能改进,并经常将这些因素纳入我的解决方案:

    • 填充每个单独的单元格的效率低于使用 fromArray() 方法。
    • 如果您使用公式,根据他们的网站,您可以使用 $objWriter->setPreCalculateFormulas(false) 加快保存速度

    编辑:

    如果不深入了解您在做什么,我只能建议您改进填充单元格的方式:

    取而代之的是: $objPHPExcel->getActiveSheet()->setCellValue('A1',$x); $objPHPExcel->getActiveSheet()->setCellValue('B1',$y);

    以这种方式只访问一次 getActiveSheet():

    $sheet = $objPHPExcel->getActiveSheet();
    $sheet->setCellValue('A1',$x);
    $sheet->setCellValue('B1',$y);
    

    或者,像这样组合单元格更新:

    $objPHPExcel->getActiveSheet()->setCellValue('A1',$x)
                                  ->setCellValue('B1',$y);
    

    【讨论】:

    • 在我的脚本和 51 列中包含多个循环和多个计数器,并且有 2000 条记录,这需要超过 1200 秒...
    • 我怎么做,在大量记录中保持导出操作非常快??
    • 如果格式不太重要,我在 Excel5 中保存会更好 - 它更快。
    • 1200 秒 = 20 分钟 - 真的吗? “我认为,你在其他地方遇到了更大的问题。我们整天都在使用它来处理比这更大的数据集,并且从未接近过这样的时代
    • @Mouhamad - 无论您是否使用公式,除非您使用 setPreCalculateFormulas(false),否则 Writer 仍会检查每个单元格以查看其是否包含公式,因此这样做特别值得
    最近更新 更多