Laravel-excel3.1怎么用

這篇文章主要為大家展示了“Laravel-excel3.1怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Laravel-excel3.1怎么用”這篇文章吧。

10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有清水河免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

                           

路由定義為GET

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

控制器轉(zhuǎn)發(fā)

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

業(yè)務(wù)代碼

<?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;

/**
 * 派單導(dǎo)出
 */
class OrderExport implements FromCollection, WithHeadings, WithColumnFormatting, WithMapping
{
    public $status;

    //接受參數(shù)
    public function __construct(int $status)
    {
        $this->status = $status;
    }

    /**
     * 數(shù)據(jù)源
     * @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 [
            '編號',
            '創(chuàng)建人',
            '中隊(duì)長',
            '人員',
            '名稱',
            '備注',
            '狀態(tài)',
            '創(chuàng)建時間',
            '更新時間'
        ];
    }

    /**
     * 設(shè)置單元格時間格式
     * @return array
     */
    public function columnFormats(): array
    {
        return [
            'H' => NumberFormat::FORMAT_DATE_YYYYMMDD,
            'I' => NumberFormat::FORMAT_DATE_YYYYMMDD,
        ];
    }

    /**
     * 自定義數(shù)據(jù)列
     * @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),
        ];
    }

    /**
     * 狀態(tài)轉(zhuǎn)化
     * @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怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

標(biāo)題名稱:Laravel-excel3.1怎么用
新聞來源:http://muchs.cn/article40/gdoheo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、云服務(wù)器、商城網(wǎng)站、自適應(yīng)網(wǎng)站全網(wǎng)營銷推廣、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)