phpExcel 很慢时如何优化?

问题描述

我正在使用 PHPExcel 导出 excel 文件。我输出 2000 行,其执行时间约为 10 秒。问题是,当我输出 20,000 行 时,它得到错误ERROR TIME OUT 。一开始:ma​​x_execution_time = 30,我把它设置回ma​​x_execution_time = 60(这个值等于主服务器上的值)。现在有一种方法可以最大限度地减少文件导出时间,因为数据有时非常大......多达几十万行。请帮我。谢谢。对不起,我的英语不好。


         // array example
        // 20.000 rows
        $data = [
            [
                'name' => 'hello','address' => 'usa','birthday' => '2021-04-30'
            ],[
                'name' => 'hello',];
        // Sample processing code
        $exRow = 2;
        foreach ($data as $val) {
            for ($i = 0; $i < 12; $i++) { // set title
                $excel->getActiveSheet()->setCellValueByColumnAndRow($i,$exRow,$val);
            }
        }
        header('Content-type: application/vnd.ms-excel');
        header('Content-disposition: attachment; filename="data.xls"');
        PHPExcel_IOFactory::createWriter($excel,'Excel2007')->save('PHP://output');

解决方法

你只需要在php.ini文件中增加max_execution_time。如果您没有权限执行此操作,只需制作一个 php.iniuser.ini 并将此文本放在那里

max_execution_time=500

您也可以使用 yield 键添加 excel 行。这是帮助您通过延迟渲染来渲染 excel 行

访问此link