簡析Laravel-excel3.1的基礎用法

下面由laravel教程欄目給大家介紹關于laravel-excel3.1最基礎用法,希望對大家有所幫助!

  • 官網:https://docs.laravel-excel.com

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

路由定義為GET

Route::get('/export', [OrderController::class, 'export']);

控制器轉發

public function export(Request $request): BinaryFileResponse{      return Excel::download(new OrderExport($request->get('status', -1)), 'order.xlsx');}

業務代碼

<?php namespace AppExports;  use AppModelsOrder; use IlluminateSupportCollection; use MaatwebsiteExcelConcernsFromCollection; use MaatwebsiteExcelConcernsWithColumnFormatting; use MaatwebsiteExcelConcernsWithHeadings; use MaatwebsiteExcelConcernsWithMapping; use PhpOfficePhpSpreadsheetSharedDate; use PhpOfficePhpSpreadsheetStyleNumberFormat;  /**  * 派單導出  */ class OrderExport implements FromCollection, WithHeadings, WithColumnFormatting, WithMapping {     public $status;      //接受參數     public function __construct(int $status)     {         $this->status?=?$status; ????}  ????/** ?????*?數據源 ?????*?@return?Collection ?????*/ ????public?function?collection():?Collection ????{ ????????$query?=?Order::query(); ????????if?($this-&gt;status?!=?-1)?{ ????????????$query-&gt;where('status',?$this-&gt;status); ????????} ????????return?$query-&gt;get(); ????}  ????/** ?????*?自定義表頭 ?????*?@return?string[] ?????*/ ????public?function?headings():?array ????{ ????????return?[ ????????????'編號', ????????????'創建人', ????????????'中隊長', ????????????'人員', ????????????'名稱', ????????????'備注', ????????????'狀態', ????????????'創建時間', ????????????'更新時間' ????????]; ????}  ????/** ?????*?設置單元格時間格式 ?????*?@return?array ?????*/ ????public?function?columnFormats():?array ????{ ????????return?[ ????????????'H'?=&gt;?NumberFormat::FORMAT_DATE_YYYYMMDD, ????????????'I'?=&gt;?NumberFormat::FORMAT_DATE_YYYYMMDD, ????????]; ????}  ????/** ?????*?自定義數據列 ?????*?@param?mixed?$row ?????*?@return?array ?????*/ ????public?function?map($row):?array ????{ ????????return?[ ????????????$row-&gt;id, ????????????$row-&gt;founder-&gt;name????'無', ????????????$row-&gt;squadron-&gt;name????'無', ????????????$row-&gt;player-&gt;name????'無', ????????????$row-&gt;name, ????????????$row-&gt;remark??:?'無', ????????????$this-&gt;statusMap($row-&gt;status), ????????????Date::dateTimeToExcel($row-&gt;created_at), ????????????Date::dateTimeToExcel($row-&gt;updated_at), ????????]; ????}  ????/** ?????*?狀態轉化 ?????*?@param?$status ?????*?@return?string ?????*/ ????public?function?statusMap($status):?string ????{ ????????switch?($status)?{ ????????????case?0: ????????????????$statusText?=?'待處理'; ????????????????break; ????????????case?1: ????????????????$statusText?=?'處理中'; ????????????????break; ????????????case?2: ????????????????$statusText?=?'待審核'; ????????????????break; ????????????case?3: ????????????????$statusText?=?'已完成'; ????????????????break; ????????????default: ????????????????$statusText?=?'未知'; ????????} ????????return?$statusText; ????} }

相關推薦:最新的五個Laravel視頻教程??? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享