简析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 分享