【相關推薦:】
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 檢視返回值,前端拿到的是檔案流,如下:
Laravel 9 保姆級視訊教學,想學不會都難!進入學習
為什麼直接執行介面返回的是個物件,前端拿到居然變為檔案流了?
原來是返回的時候,自動給返回頭加了兩個引數
Content-Disposition:attachment; filename=20221208152026.xls
Content-Type:application/vnd.ms-excel
登入後複製
Content-Disposition 不就是物件裡面的頭訊息嘛
以上就是Laravel8如何快速匯出excel返回值!的詳細內容,更多請關注TW511.COM其它相關文章!