首頁 >php框架 >Laravel >Laravel8如何快速匯出excel返回值!

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

藏色散人
藏色散人轉載
2022-12-08 17:02:411757瀏覽

這篇文章主要跟大家介紹怎麼快速實作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 查看回傳值,前端拿到的是文件流,如下:

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

#為什麼直接執行介面回傳的是個對象,前端拿到居然變成文件流了?

原來是回傳的時候,自動為回傳頭加了兩個參數

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

Content-Disposition 不就是物件裡面的頭訊息嘛

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

以上是Laravel8如何快速匯出excel返回值!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除