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

2022-05-15 0 677

下面由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视频教程

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 简析Laravel-excel3.1的基础用法 https://www.jike1995.com/35960.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务