laravel excel使用笔记

插件地址

官网链接
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文件的几种方式


你可能感兴趣的:(laravel excel使用笔记)