今天,给大家分享一下,如何在拉勒韦尔框架中,实现导出Excel功能。同时,在导出的超过中把链接地址转化成图片。
需要用到的工具及扩展
laravel版本为5.5,可到官网根据自己的需要下载相应版本PHP7及以上超过扩展用的是maatwebsite/excel,版本为2.1及以上安装后的拉勒韦尔框架目录如下图所示级别框架目录结构
核心代码
laravel excel有三种导出方式:Exportables、From Query、From View,我这里用的是From View
1.创建导出类 app/Exports,可以通过使用make:export命令来执行此操作。如下:
php工匠制作:export导出订单导出模型=用户生成都目录结构如下:2.OrderExport.php文件中的代码如下:app导出order出口。PHPcomposer。数据
?phpnamespace应用程序\导出使用maat网站\ Excel \ Concerns \ from view使用照亮\合同\视图\视图;分类订单导出实现from view { protected $ img position=;//图片插入位置public function _ _ construct(array $ data){ $ this-data=$ data;//要导出的数据}公共函数View(): View { return View(' export ',' data '=$ this-data);//导出为导出视图模板}}
3.上面代码中,导出视图模板export的文件为 export.blade.php,具体位置如下:。资源 观点export。刀锋。PHPcomposer。数据该模板定义了导出超过的格式,具体代码如下:
表头/头tbody tr?PHP foreach($ data ' header ' as $ key=$ val){?td style='vertical-align:中心;b{{$val}}/b/td?php }?/tr?PHP foreach($ data ' rows ' as $ key=$ val){?tr?php foreach ($val as $k=$v) {?php if (is_array($v)) {?{ {-@ foreach($ v as $ I=$ img)TD style=' vertical-align : center;b{{$img}}/b/td @endforeach - }}?php } else {?td style='垂直对齐:中心;b{{$v}}/b/td?php }?php }?/tr?php }?/tbody/table4.好啦,接下来就可以直接在controller中导出文件到excel了。
公共函数导出($ data){ $ order export=新订单导出($ data);//$数据为需要导出到超过中的数据返回excel :下载($订单导出,'测试。xlsx’);}以上就是导出超过的全部过程啦!下面我们来讲一讲如何把图片链接地址转换成图片并导出到超过中。
链接地址转换成图片
导出的数据格式需要在app/Exports/OrderExport.php文件中设置
1.通过使用 WithDrawings 添加图片到excel中,实例化工程图(Drawing),并设置相应的值:
$ Drawing=new \ PHP office \ PHP电子表格\工作表\ Drawing();$绘图集名称(“徽标”);//图片名称$drawing-setDescription('这是我的logo’);//图片描述$ drawing-set path(public _ path('/img/logo。jpg’);//图片路径$绘图-设置高度(90);//图片高度2.实例化之后,需要添加到导出类中,添加一个图纸:
?phpnamespace应用程序\导出使用maat网站\ Excel \ Concerns \ from view使用照亮\合同\视图\视图;使用maat网站\ Excel \关注\退出;分类订单导出实现FromView,WithDrawings { public function _ _ construct(array $ data){ $ this-data=$ data;//要导出的数据}公共函数View(): View { return View(' export ',' data '=$ this-data);//导出为导出视图模板}公共函数drawings(){ $ Drawing=new Drawing();$绘图集名称(“徽标”);$drawing-setDescription('这是我的logo’);$ drawing-set path(public _ path('/img/logo。jpg’);$绘图-设置高度(90);$绘图-设置坐标(' B3 ');//图片位于超过中的单元格位置return $ drawing}}如果想要导出多张图片,只需在图纸()方法中,实例化多个工程图类并设置相应参数即可。导出结果如下图:
除了以上介绍的功能,还有许多其他设置超过的方法,如导出不同格式文件、格式化列、自定义格式值、单元格颜色、字体大小、位置都可以设置。
拉勒韦尔框架中,导出数据到excel,并且把链接地址转换成图片的功能,已经完整的介绍完啦。是不是感觉很简单,功能很强大,动手试一试吧!
关注我的头条号,每天更新服务器端编程语言(专业超文本预处理器的缩写)相关技术知识。我是简单,功能很强大,动手试一试吧!关注我的头条号,每天更新服务器端编程语言(专业超文本预处理器的缩写)相关技术知识。我是服务器端编程语言(专业超文本预处理器的缩写)程序媛,努力向前,成长可见!