0

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

  • 这是我的代码:

         // array example
        // 20.000 rows
        $data = [
            [
                'name' => 'hello',
                'address' => 'usa',
                'birthday' => '2021-04-30'
            ],
            [
                'name' => 'hello',
                'address' => 'usa',
                'birthday' => '2021-04-30'
            ],
        ];
        // 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');
4

1 回答 1

0

你只需要增加max_execution_timephp.ini 文件。如果您无法执行此操作,则可以制作一个php.inioruser.ini并将此文本放在那里

max_execution_time=500

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

访问此链接

于 2021-05-05T18:20:21.790 回答