接上一篇文章,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
|
public function export(\Excel $excel) { ini_set('memory_limit','500M'); set_time_limit(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/