這篇文章主要跟大家介紹怎麼快速實作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 查看回傳值,前端拿到的是文件流,如下:
#為什麼直接執行介面回傳的是個對象,前端拿到居然變成文件流了?
原來是回傳的時候,自動為回傳頭加了兩個參數
Content-Disposition:attachment; filename=20221208152026.xls Content-Type:application/vnd.ms-excel
Content-Disposition 不就是物件裡面的頭訊息嘛
以上是Laravel8如何快速匯出excel返回值!的詳細內容。更多資訊請關注PHP中文網其他相關文章!