插件地址
官网链接
github地址
使用心得
- 导入,导出基本功能
- 使用Excel::create只能重新创建文件,不能追加。(特别不爽,麻烦的根源)
- 内网服务器做测试导出数据16w+做测试
1 需占用磁盘空间1.6G,中间也不知道在做什么。导出一个11M多的excel后,释放占用空间。但是如果空间不够报错。
2 CPU使用99%,内存消耗27%+,花费4分钟时间才能生出excel文件
- 不推荐大批量数据导出,部分代码如下
$page = 1;
Excel::create($fileName, function ($excel) use ($page) {
$excel->sheet('sheet_one', function ($sheet) use ($page) {
while (true) {
$autoTestDownload = TableTest::orderBy('created_at')->paginate(2000,['*'],null,$page);
$lastPage = $autoTestDownload->lastPage();
$autoTestExcelData = [];
foreach ($autoTestDownload as $key => $value) {
$autoTestExcelData[$key][] = $value->type;
$autoTestExcelData[$key][] = $value->result;
$autoTestExcelData[$key][] = $value->query;
$autoTestExcelData[$key][] = $value->domain;
$autoTestExcelData[$key][] = $value->intent;
foreach (json_decode($value->slot, true) as $k => $v) {
$autoTestExcelData[$key][] = $v;
}
}
$sheet->rows($autoTestExcelData); // 二维多数组
// foreach ($autoTestExcelData as $v) {
// $sheet->appendRow($v); // 仅单列追加
// }
echo $page . " / " . $lastPage;echo PHP_EOL;
if ($lastPage < ++$page) {
break;
}
}
});
})->store('xlsx');
}
推荐一种导出的方式
PHP导出excel文件的几种方式