扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍“怎么用laravel+PhpSpreadsheet导出excel并下载”,在日常操作中,相信很多人在怎么用laravel+PhpSpreadsheet导出excel并下载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用laravel+PhpSpreadsheet导出excel并下载”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目网站设计、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元云州做网站,已为上家服务,为云州各地企业和个人服务,联系电话:028-86922220
效果图:
官方网站:https://phpspreadsheet.readthedocs.io/en/latest/#getting-started
第一步:导入phpspreadsheet
在IDE里面利用composer安装,命令如下:
composer require phpoffice/phpspreadsheet
第二步:在laravel项目中使用该插件
以下这段代码的逻辑是先把需要的数据写入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的样式,例如设置单元格宽度,设置字体大小和颜色等。这些可以根据需求自行设置。
前端点击按钮下载的代码如下:
$.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属性 document.body.appendChild(createA);//兼容火狐 createA.click();//给a标签绑定点击事件,通过a标签的href属性和点击事件实现下载的功能 document.body.removeChild(createA); } }else{ layer.msg(data.msg); } } })
到此,关于“怎么用laravel+PhpSpreadsheet导出excel并下载”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流