laravel-excel 3 导出(多图片导出)
文章目录
- 前言
- 一、扩展版本
- 二、代码
- 1.excel导出类
- 2.controller生成数据类
- 三、效果
- 总结
前言
本文记录通过laravel-excel:3将供应商信息导出为excel的功能,特别记录关于该拓展对图片、表格样式的操作。其中用到了php的可变变量
一、扩展版本
1、composer require “maatwebsite/excel”: “^3.1”
2、官方文档:https://docs.laravel-excel.com/3.1/getting-started/
二、代码
1.excel导出类
excel导出类ExcelController实现WithDrawings、FromArray等接口:
<?phpnamespace App\Http\Controllers;use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
use Maatwebsite\Excel\Concerns\WithDrawings;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;class ExcelController implements FromArray,WithColumnFormatting,WithColumnWidths,WithDrawings,WithEvents
{protected $arr;//$drawings为PhpOffice\PhpSpreadsheet\Worksheet\Drawing对象数组protected $drawings;public function __construct(array $arr,$drawings){$this->arr= $arr;$this->drawings = $drawings;}//导出数据public function array(): array{return $this->arr;}
//自定义单元格格式public function columnFormats(): array{// return [
// 'B' => NumberFormat::FORMAT_DATE_DDMMYYYY,
// 'C' => NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE,
// ];return [];}
//自定义宽public function columnWidths(): array{return ['A'=>'20','B'=>'20','C'=>'20','D'=>'20','E'=>'20','F'=>'20','G'=>'20','H'=>'20','I'=>'20','J'=>'20','K'=>'20','L'=>'20','M'=>'20','N'=>'20',];}
//导出图片public function drawings(){return $this->drawings;}
//自定义高public function registerEvents(): array{return [AfterSheet::class => function(AfterSheet $event){$event->sheet->getDelegate()->getDefaultRowDimension()->setRowHeight(50);},];}
}
2.controller生成数据类
代码如下(数据库图片名以逗号’,'相隔):
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;class SupplierController extends Controller{/*** laravel-excel3导出* 图片文件不能重复* 取相关图片类的第一个图片文件展示*/public function supplier_excel(){//表头$sup_arr = [['供应商名称','成立日期','统一社会信用代码','营业执照有效期','动物检验检疫证明','经营许可证'],];$sup = supplier::where('id',$su_id)->get(['su_name','start_time','code','exp'])->toArray();//将供应商信息加到sup_arr数组中foreach ($sup as $k => $v){$sup_arr[] = array_values($v);}//获取图片名称
$img = supplier::where('id',$su_id)->get(['business_cert','zoon_cert'])->toArray();$i = 2;$drawings = [];foreach ($img as $k => $v){$img_name = explode(',',$v['zoon_cert']);if (empty($img_name[0])) break;//将对象命名为可变变量$$i = new Drawing();//自定义导出图片信息$$i->setName('Logo');$$i->setDescription('This is my logo');$$i->setPath(env('APP_STORAGE').'supplier/'.$img_name[0]);$$i->setHeight(50);$$i->setCoordinates('E'.$i);//将对象放入数组$drawings[] = ${$i};$i += 1;}//第二类图片$i1 = 2;foreach ($img as $k => $v){$img_name = explode(',',$v['food_cert']);if (empty($img_name[0])) break;$$i = new Drawing();$$i->setName('Logo');$$i->setDescription('This is my logo');$$i->setPath(env('APP_STORAGE').'supplier/'.$img_name[0]);$$i->setHeight(50);$$i->setCoordinates('F'.$i1);$drawings[] = ${$i};$i1 += 1;}//将数据与对象数组传入导出类$export = new ExcelController($sup_arr,$drawings);//下载excel文件return Excel::download($export, 'supplier.xlsx');}}
三、效果
总结
excel下载的 response类型为’Symfony\Component\HttpFoundation\BinaryFileResponse’,可能与框架的响应类型不同。
laravel-excel 3 导出(多图片导出)相关推荐
- 通过Java批量导出带有图片的Excel文件数据
批量导出带有图片的Excel文件 一.思路解析 二.关键源码 三.总结 Java通过POI或者一些常见的Excel工具类能够轻易导出后台的结构化数据,但是最近面临一个新需求,需要将对应记录数据和图片网 ...
- Laravel Excel文件模板导出
这篇主要描述如何从模板中导出的内容,如果不想使用模板 可参考Laravel Excel 3.1 导出_json_li的博客-CSDN博客 目录 创建导出模型 创建模板文件 控制器中调用 1.激活下载窗 ...
- php导出照片,Laravel使用 Laravel Excel文件导出图片功能
Laracel 中可以使用Laravel Excel进行Excel或者PDF的导出,使用composer进行安装此差价,Laravel-Excel将PHPExcel进行封装. 其官方文档:http:/ ...
- laravel Excel导入导出
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...
- php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
@H_404_0@ 1.简介 @H_404_0@本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍 ...
- c# excel导出png_批量导出Excel文件中的图片,用VBA代码其实很简单
本次案例来自悟空问答网友提问,之前由于时间原因,回复比较简单没有给出具体实现方法,今天花时间整理写成图文,希望小伙伴们都可以学会.@沉默的生物钟 实际问题 一.数据模拟--素材准备 为了更加真实的还原 ...
- java利用poi导出excel功能-附带图片导出
java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...
- java中Excel导出echart图片
java中Excel导出echart图片 1.在生成echart的前端代码生成图片代码后Echart.setOption(captestRcapEchartOption, true);后面加上以下代码 ...
- Excel图表导出为图片,最终转为eps矢量图
写论文时一般会用到矢量图,即放大和缩小不会失真的图片.不管原图片是png.jpg还是pdf格式,都可以方便的转化为eps格式的矢量图,并在Latex中使用. 1.Excel图表导出为图片 选中Exce ...
- python3 excel 图表导出图片_使用python代码将excel中的图表导出为图片
python导出Excel图表类 前期准备就绪,网上已有类似的导出Excel图表类,但是在后面的使用中发现问题,即关键函数已在下面代码中标红: 调用代码: 执行成功,接下来到上面设置的导出路径查看导出 ...
最新文章
- webpack5--css 打包
- 2017202110104-高级软件工程2017第8次作业—个人总结
- Qt 的QString类的使用
- Java 循环控制语句break/return/continue的使用
- 【Tools】MarkDown教程(七)-Typora详细教程
- suList() 和 asList()
- windows安装卸载mysql
- 华为手机下拉菜单没了_这才是华为正确的截图方式!别不当回事,白白浪费这么强大的手机...
- 尤金·卡巴斯基:卡巴斯基实验室调查内网遭黑客攻击事件
- 锐起无盘服务器优化,(锐起无盘系统制作系统优化教程.doc
- 啊哈C语言答案,啊哈c语言开头的题,哪位大佬来试试?
- python 经验模态分解_心电信号去噪4--经验模态分解法(EMD)
- PB AcceptText()函数
- Rockchip官方开发板的Android固件下载地址汇总
- 组合数学6--母函数与递推关系
- 文件上传之500错误
- 教你编写DOTA外挂
- 不蒜子实现网站访问量访客数统计
- TypeError: expected Tensor as element 0 in argument 0, but got numpy.ndarray
- 模电摸索日记之《整流与滤波电路》
热门文章
- win搭建7java环境_WIN7java环境变量搭建方法
- 智能家居弱电布线设计注意事项
- ini更改文件夹图标
- 省考计算机专业课考什么,计算机考研专业课考什么
- Mysql 超键 候选键 主键 外键之间关系
- [转]IDE 、SATA、SCSI 的区别
- JavaScript 效果 - so cool
- 计算机数学基础:斜率与截距、导数、权重的关系
- php 模拟登陆微信,PHP实现微信模拟登陆的实例介绍
- ES7.14报错 Invalid receiver type interface org.apache.http.Header;not a subtype XX.http.NameValuePair