问题描述
我正在使用 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',];
// 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.ini
或 user.ini
并将此文本放在那里
max_execution_time=500
您也可以使用 yield
键添加 excel 行。这是帮助您通过延迟渲染来渲染 excel 行
访问此link