简析Laravel-excel3.1的基础用法

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

简析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');}
登录后复制

业务代码

<?phpnamespace 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视频教程

以上就是简析Laravel-excel3.1的基础用法的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:在centos7中如何为php7安装redis扩展
下一篇:PHP正则表达式验证输入字符串是否为正确的在线多人游戏账号格式

发表评论

关闭广告
关闭广告