文章目录

  • 前言
  • 一、扩展版本
  • 二、代码
    • 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 导出(多图片导出)相关推荐

  1. 通过Java批量导出带有图片的Excel文件数据

    批量导出带有图片的Excel文件 一.思路解析 二.关键源码 三.总结 Java通过POI或者一些常见的Excel工具类能够轻易导出后台的结构化数据,但是最近面临一个新需求,需要将对应记录数据和图片网 ...

  2. Laravel Excel文件模板导出

    这篇主要描述如何从模板中导出的内容,如果不想使用模板 可参考Laravel Excel 3.1 导出_json_li的博客-CSDN博客 目录 创建导出模型 创建模板文件 控制器中调用 1.激活下载窗 ...

  3. php导出照片,Laravel使用 Laravel Excel文件导出图片功能

    Laracel 中可以使用Laravel Excel进行Excel或者PDF的导出,使用composer进行安装此差价,Laravel-Excel将PHPExcel进行封装. 其官方文档:http:/ ...

  4. laravel Excel导入导出

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...

  5. php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    @H_404_0@ 1.简介 @H_404_0@本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍 ...

  6. c# excel导出png_批量导出Excel文件中的图片,用VBA代码其实很简单

    本次案例来自悟空问答网友提问,之前由于时间原因,回复比较简单没有给出具体实现方法,今天花时间整理写成图文,希望小伙伴们都可以学会.@沉默的生物钟 实际问题 一.数据模拟--素材准备 为了更加真实的还原 ...

  7. java利用poi导出excel功能-附带图片导出

    java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...

  8. java中Excel导出echart图片

    java中Excel导出echart图片 1.在生成echart的前端代码生成图片代码后Echart.setOption(captestRcapEchartOption, true);后面加上以下代码 ...

  9. Excel图表导出为图片,最终转为eps矢量图

    写论文时一般会用到矢量图,即放大和缩小不会失真的图片.不管原图片是png.jpg还是pdf格式,都可以方便的转化为eps格式的矢量图,并在Latex中使用. 1.Excel图表导出为图片 选中Exce ...

  10. python3 excel 图表导出图片_使用python代码将excel中的图表导出为图片

    python导出Excel图表类 前期准备就绪,网上已有类似的导出Excel图表类,但是在后面的使用中发现问题,即关键函数已在下面代码中标红: 调用代码: 执行成功,接下来到上面设置的导出路径查看导出 ...

最新文章

  1. webpack5--css 打包
  2. 2017202110104-高级软件工程2017第8次作业—个人总结
  3. Qt 的QString类的使用
  4. Java 循环控制语句break/return/continue的使用
  5. 【Tools】MarkDown教程(七)-Typora详细教程
  6. suList() 和 asList()
  7. windows安装卸载mysql
  8. 华为手机下拉菜单没了_这才是华为正确的截图方式!别不当回事,白白浪费这么强大的手机...
  9. 尤金·卡巴斯基:卡巴斯基实验室调查内网遭黑客攻击事件
  10. 锐起无盘服务器优化,(锐起无盘系统制作系统优化教程.doc
  11. 啊哈C语言答案,啊哈c语言开头的题,哪位大佬来试试?
  12. python 经验模态分解_心电信号去噪4--经验模态分解法(EMD)
  13. PB AcceptText()函数
  14. Rockchip官方开发板的Android固件下载地址汇总
  15. 组合数学6--母函数与递推关系
  16. 文件上传之500错误
  17. 教你编写DOTA外挂
  18. 不蒜子实现网站访问量访客数统计
  19. TypeError: expected Tensor as element 0 in argument 0, but got numpy.ndarray
  20. 模电摸索日记之《整流与滤波电路》

热门文章

  1. win搭建7java环境_WIN7java环境变量搭建方法
  2. 智能家居弱电布线设计注意事项
  3. ini更改文件夹图标
  4. 省考计算机专业课考什么,计算机考研专业课考什么
  5. Mysql 超键 候选键 主键 外键之间关系
  6. [转]IDE 、SATA、SCSI 的区别
  7. JavaScript 效果 - so cool
  8. 计算机数学基础:斜率与截距、导数、权重的关系
  9. php 模拟登陆微信,PHP实现微信模拟登陆的实例介绍
  10. ES7.14报错 Invalid receiver type interface org.apache.http.Header;not a subtype XX.http.NameValuePair