效果圖:php
官方網站:https://phpspreadsheet.readthedocs.io/en/latest/#getting-started前端
第一步:導入phpspreadsheetlaravel
在IDE裏面利用composer安裝,命令以下:ajax
composer require phpoffice/phpspreadsheet
第二步:在laravel項目中使用該插件composer
如下這段代碼的邏輯是先把須要的數據寫入excel而後保存在指定目錄下,在前端利用a標籤點擊下載excel文件字體
$spreadsheet = new Spreadsheet();//實例化 $spreadsheet->setActiveSheetIndex(0);//設置excel的索引 $sheet=$spreadsheet->getActiveSheet(); /*設置單元格列寬*/ $sheet->getColumnDimension('A')->setWidth(20); $sheet->getColumnDimension('B')->setWidth(15); $sheet->getColumnDimension('C')->setAutoSize(true); /*設置字體大小*/ $sheet->getStyle('A1:c1')->getFont()->setBold(true)->setName('Arial')->setSize(10); //鎖定表頭 $sheet->freezePane('A2'); $sheet->setCellValue('A1','答卷時間') ->setCellValue('B1','答卷人姓名') ->setCellValue('C1','答案文本'); $sheet->fromArray($result,null,'A2'); $writer = new Xls($spreadsheet); $pathUrl = public_path(). '\excel/'; $filePath=$pathUrl.$fileName; //判斷目錄是否存在,若是不存在就新建 if(!is_dir($pathUrl)) mkdir($pathUrl,0755,true); $writer->save($filePath); //保存excel
經過代碼能夠看出咱們能夠經過一些特定的設置去控制生成的excel的樣式,例如設置單元格寬度,設置字體大小和顏色等。這些能夠根據需求自行設置。網站
前端點擊按鈕下載的代碼以下:ui
$.ajax({ url:ajaxUrl, type:'GET', data:{ '_token':token, 'paperId':paperId, 'optionId':optionId }, success:function (data) { if (data.code===1){ if(data.data.length>0){ var path = data.data,//返回excel文件的地址 url = "{{asset('')}}"+path,//包裝地址 createA=document.createElement('a');//建立一個a標籤 createA.href=url;//給a標籤設置href屬性 createA.click();//給a標籤綁定點擊事件,經過a標籤的href屬性和點擊事件實現下載的功能 } }else{ layer.msg(data.msg); } } })
若是各位大佬有更好的解決方法,歡迎留言討論。url