您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Laravel-excel3.1怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Laravel-excel3.1怎么用”這篇文章吧。
路由定義為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 App\Exports; use App\Models\Order; use Illuminate\Support\Collection; use Maatwebsite\Excel\Concerns\FromCollection; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use Maatwebsite\Excel\Concerns\WithHeadings; use Maatwebsite\Excel\Concerns\WithMapping; use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; /** * 派單導出 */ 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->status != -1) { $query->where('status', $this->status); } return $query->get(); } /** * 自定義表頭 * @return string[] */ public function headings(): array { return [ '編號', '創建人', '中隊長', '人員', '名稱', '備注', '狀態', '創建時間', '更新時間' ]; } /** * 設置單元格時間格式 * @return array */ public function columnFormats(): array { return [ 'H' => NumberFormat::FORMAT_DATE_YYYYMMDD, 'I' => NumberFormat::FORMAT_DATE_YYYYMMDD, ]; } /** * 自定義數據列 * @param mixed $row * @return array */ public function map($row): array { return [ $row->id, $row->founder->name ?? '無', $row->squadron->name ?? '無', $row->player->name ?? '無', $row->name, $row->remark ?: '無', $this->statusMap($row->status), Date::dateTimeToExcel($row->created_at), Date::dateTimeToExcel($row->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-excel3.1怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。