我有50,000个原始。我想导出它们但系统无法导出它。我正在使用此代码。有没有更好的解决方案呢?
Excel::create('catalogDumptReport', function ($excel) use ($finalArray) {
$excel->sheet('catalogDumptReport', function ($sheet) use ($finalArray) {
$sheet->fromArray($finalArray);
$sheet->setFontFamily('Verdana');
$sheet->setFontSize(10);
$sheet->row(1, function ($row) {
$row->setFontWeight('bold');
});
$sheet->setBorder('A1', 'thin');
$sheet->setHeight(1, 20);
});
})->export('xls')
->download('xls');
答案 0 :(得分:0)
就个人而言,我建议不要将这样大的xls文件(直接在浏览器中)用于表示。最好的方法(也是最快的)是在后台导出它(例如async Laravel Queue等)。
主要有两个计算复杂性问题:
正如我所说,最好的方法是将xle生成放入后台 - 但还有更多:
您需要找到一种方法来分割数据并将其与一部分数据相加 - 而不是一次性全部。这可以节省内存资源。
在队列中导出后,您可以在浏览器中查看 ajax请求如果文件已准备好下载并让用户下载已准备好的xls文件。