温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用laravel+PhpSpreadsheet导出excel并下载

发布时间:2021-07-07 16:38:37 来源:亿速云 阅读:911 作者:chen 栏目:大数据

这篇文章主要介绍“怎么用laravel+PhpSpreadsheet导出excel并下载”,在日常操作中,相信很多人在怎么用laravel+PhpSpreadsheet导出excel并下载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用laravel+PhpSpreadsheet导出excel并下载”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

效果图:怎么用laravel+PhpSpreadsheet导出excel并下载

                怎么用laravel+PhpSpreadsheet导出excel并下载

官方网站: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并下载”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI