• 技术文章 >php框架 >Laravel

    Laravel8如何快速导出excel返回值!

    藏色散人藏色散人2022-12-08 20:32:54转载285

    本篇文章主要给大家介绍怎么快速实现Laravel8导出excel返回值,很简单哦~希望对需要的朋友有所帮助!

    【相关推荐:laravel视频教程

    Laravel8导出excel返回值的简单想法

    最近在使用 Maatwebsite\Excel 扩展进行 excel 的导出功能,具体怎么操作,这里不详细说了,通过下面代码导出:

    //导出excel【$head是excel表头,$list是数据】
    return Excel::download(new CustomerExport($head, $list), date('YmdHis') . '.xls');

    我本着好奇打印这个返回值:

    print_r(Excel::download(new CustomerExport($head, $list), date('YmdHis') . '.xls'));

    结果如下:

    Symfony\Component\HttpFoundation\BinaryFileResponse Object
    (
        [file:protected] => Symfony\Component\HttpFoundation\File\File Object
            (
                [pathName:SplFileInfo:private] => /home/vagrant/www/admin/storage/framework/cache/laravel-excel/laravel-excel-4U89uL9YLn4vNb1QrCDelsmv4Yrk3Ff.xls
                [fileName:SplFileInfo:private] => laravel-excel-4U89uL9YLn4vNb1QrCDelsmv4Yrk3Ff.xls
            )
        [offset:protected] => 0
        [maxlen:protected] => -1
        [deleteFileAfterSend:protected] => 1
        [headers] => Symfony\Component\HttpFoundation\ResponseHeaderBag Object
            (
                [computedCacheControl:protected] => Array
                    (
                        [public] => 1
                    )
                [cookies:protected] => Array
                    (
                    )
                [headerNames:protected] => Array
                    (
                        [cache-control] => Cache-Control
                        [date] => Date
                        [last-modified] => Last-Modified
                        [content-disposition] => Content-Disposition
                    )
                [headers:protected] => Array
                    (
                        [cache-control] => Array
                            (
                                [0] => public
                            )
                        [date] => Array
                            (
                                [0] => Thu, 08 Dec 2022 05:57:26 GMT
                            )
                        [last-modified] => Array
                            (
                                [0] => Thu, 08 Dec 2022 07:16:21 GMT
                            )
                        [content-disposition] => Array
                            (
                                [0] => attachment; filename=20221208152026.xls
                            )
                    )
                [cacheControl:protected] => Array
                    (
                        [public] => 1
                    )
            )
        [content:protected] => 
        [version:protected] => 1.0
        [statusCode:protected] => 200
        [statusText:protected] => OK
        [charset:protected] => 
    )

    很明显他是个对象。

    因为我是前后端分离的,接口也是直接上面代码的,前端同学使用 a 标签跳到接口地址进行下载的,可以成功。但是打开 F12 的 network 查看返回值,前端拿到的是文件流,如下:

    9a35facc888bd226277cb136b859350.jpg

    为什么直接运行接口返回的是个对象,前端拿到居然变为文件流了?

    原来是返回的时候,自动给返回头加了两个参数

    Content-Disposition:attachment; filename=20221208152026.xls
    Content-Type:application/vnd.ms-excel

    Content-Disposition 不就是对象里面的头消息嘛

    4089bac883b56136b7087940f971b70.jpg

    以上就是Laravel8如何快速导出excel返回值!的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:learnku,如有侵犯,请联系admin@php.cn删除
    专题推荐:Laravel8
    上一篇:15个很棒的Laravel 集合(Collection)方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一起来聊聊Laravel8的路由与控制器• Laravel8+Vuejs怎么实现单页面应用(SPA)• Laravel8如何进行性能优化?优化技巧分享• 详解Laravel8 ES封装及其使用方法• 一文详解laravel8如何使用throttle中间件
    1/1

    PHP中文网