Laravel maatwebsite/Excel 3.1导出

接上一篇文章,3.1的导出没有create这个方法了 。

先写一个公共的export class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace App\Services;

use Maatwebsite\Excel\Concerns\FromArray;

class Export implements FromArray
{
    protected $array;
    public function __construct(Array $array)
    {
        $this->array = $array;
    }

    public function array(): array
    {
        return $this->array;
    }
}

然后在controller中可以使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * @param \Excel $excel
 * @return \Maatwebsite\Excel\BinaryFileResponse
 * @throws \PhpOffice\PhpSpreadsheet\Exception
 * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
 */
public function export(\Excel $excel)
{
    ini_set('memory_limit','500M');
    set_time_limit(0);//设置超时限制为0分钟
    //设置表头
    $data[] = [
        '快递公司',
        '始发地',
        '目的地',
        '是否统包'
    ];
    //下面是你的数据
    $data[] = [
        'aaa',
        'bbb',
        'ccc',
        'ddd',
    ];


    try {
        return $excel::download(new Export($data), '测试.xlsx');
    } catch (Exception $e) {
        return $this->errorBadRequest($e->getMessage());
    } catch (\PhpOffice\PhpSpreadsheet\Exception $e) {
        return $this->errorBadRequest($e->getMessage());
    }
}

更多用法见文档:https://docs.laravel-excel.com/3.1/exports/


Laravel maatwebsite/Excel 3.1导出
https://randzz.cn/b32043431f76/laravel-maatwebsite-excel-3-1导出/
作者
Ezreal Rao
发布于
2019年3月28日
许可协议