laravel使用get和post方法提交匯出資料
阿新 • • 發佈:2019-02-15
今天在與前端對匯出資料的介面時,前端跟我說他那邊獲取了一堆亂碼的資料。但我記得我測試的時候用瀏覽器訪問是OK的。於是我找到原始碼,發現自己用的是post路由,就想到當初是因為資料安全而選擇post。所以寫法也要改。前面的安裝Excel元件就跳過哦,因為社群有教程(#^.^#)
(我在資料看到好多引入Excel類的時候 是直接 use Excel ,而我在專案裡面的時候是 use Maatwebsite\Excel\Facades\Excel; 只要正確引入就可以)
get方式匯出表格
ini_set('memory_limit','500M');
set_time_limit(0);//設定超時限制為0分鐘
$data=array(['小明','24','男'],['小紅','22','女']);
-----------------------------
//資料的拼裝可以自己發揮,但是資料的格式一定array(['小明','24','男'],['小紅','22','女']),鍵一定是0,1,2等數字型別
foreach ($data as $k=>$v){
$cell[$k+1]=array_values($v);
}
$cell[0] = array('姓名','年齡','性別');
ksort($cell);
-----------------------------
Excel::create('使用者' ,function($excel) use ($cell){
$excel->sheet('score', function($sheet) use ($cell){
$sheet->rows($cell);
});
})->export('xls');
在瀏覽器中輸入路由地址就可以下載Excel檔案
post方式匯出表格
//post方式 前面資料整裝都是一樣,只是post方式先要在伺服器生成Excel檔案,在在地址中下載
Excel::create('使用者',function($excel ) use ($cell){
$excel->sheet('score', function($sheet) use ($cell){
$sheet->rows($cell);
});
})->store('xls', public_path('uploads/excel/exports'));//在伺服器中生成檔案
$fileAddress=$_SERVER['HTTP_HOST'].'/uploads/excel/exports/'.$name.'.xls';//檔案地址
return response()->json(['code'=>1,'msg'=>'','data'=>$fileAddress]);//返回給前端跳轉就可以下載了