Lumen中使用 maatwebsite/excel~3.1导出


Lumen中使用 maatwebsite/excel~3.1导出

此文引用作者:

(如有意见联系即可删除)

好久没有用maatwebsite/excel都出3.1了,看着完全一脸懵,度娘上也全是2.1的教程,先来个简单的导入导出练练手!

一、导出excel文件

  1. 安装 maatwebsite/excel默认就是安装3.1
composer require maatwebsite/excel 
  1. 在bootstrap/app.php中加入
$app->register(Maatwebsite\Excel\ExcelServiceProvider::class); 
  1. 在app目录下创建导出类的目录Exports -> app/Exports
  2. 在Exports目录中创建 InvoicesExport.php文件,我这里使用的是 将数据从控制器传递到导出,导出的数据格式是什么样完全由控制器决定
<?php namespace App\Exports; use App\Invoice; use Maatwebsite\Excel\Concerns\FromArray; class InvoicesExport implements FromArray { protected $invoices; public function __construct(array $invoices) { $this->invoices = $invoices; } public function array(): array { return $this->invoices; } } 
  1. 在控制器中就可以开始操作啦
use App\Exports\InvoicesExport; use Maatwebsite\Excel\Facades\Excel; public function exportExcel(){ $arr = [ ['姓名', '地址', '性别',可加字段'], [4, 5, 6],
[这里就是你的数据库对应字段数据] ]; $export = new InvoicesExport($arr); $bool = Excel::download($export, 'invoices.xlsx';); return $bool; }


注:这个单个下载在浏览器没有问题,由于我们有个需求多个文件下载,在前端将每个流压缩成一个文件包下载实现,因为在后端实现给服务器增加一点压力(也是可以做的)。
前端打包下载后出现一个文件打开出现文件破损问题,打不开。这个时有误流文件里面有乱码问题。
解决办法:
$bool = Excel::download($export, '考勤信息.xlsx', \Maatwebsite\Excel\Excel::XLSX);
在后面跟上返回的格式就可以了。格式有很多种可以根据自己的需求更改:

支持的格式有:
                XLSX
                CSV
                TSV
                ODS
                XLS
                SLK
                XML
                GNUMERIC
                HTML
                MPDF
                DOMPDF
                TCPDF


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM