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