IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php Spreadsheet实现图片资源数据批量导出excel表格 -> 正文阅读

[PHP知识库]php Spreadsheet实现图片资源数据批量导出excel表格

废话不多说,直接上代码

public function export1()
  {
       //数据
       $data = [
           [
               'id' => 1,
               'username' => 1,
               'thumb' => 'F:\phpstudy\phpstudy_pro\WWW\education\public\uploads\image\1.jpg',//本地图片路径,如果你的图片不是本地,你还要先想办法把图片保存在本地
               'content' => 1,
               'create_time' => 1,
           ],
           [
               'id' => 2,
               'username' => 1,
               'thumb' => 'F:\phpstudy\phpstudy_pro\WWW\education\public\uploads\image\1.jpg',//本地图片路径
               'content' => 1,
               'create_time' => 1,
           ],
       ];

       //创建一个新的excel文档
       $newExcel = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
       //获取当前操作sheet的对象
       $objSheet = $newExcel->getActiveSheet();
       //设置当前sheet的标题
       $objSheet->setTitle('意见反馈');
       //设置宽度为true,不然太窄了
       $newExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
       $newExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
       $newExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
       $newExcel->getActiveSheet()->getColumnDimension('D')->setWidth(40);
       $newExcel->getActiveSheet()->getColumnDimension('E')->setWidth(30);
       //设置第一栏的标题
       $objSheet->setCellValue('A1', 'ID')
                ->setCellValue('B1', '用户')
                ->setCellValue('C1', '图片')
                ->setCellValue('D1', '内容')
                ->setCellValue('E1', '时间');

       if (!empty($data)) {
           foreach ($data as $key => $val) {
               $key = $key + 2;
               //设置第行高度
               $newExcel->getActiveSheet()->getRowDimension($key)->setRowHeight(65);
               //设置行值
               $objSheet->setCellValue('A' . $key, $val['id'])
                     ->setCellValue('B' . $key, $val['username'])
                     //->setCellValue('C' . $key, $val['thumb'][0])
                     ->setCellValue('D' . $key, $val['content'])
                     ->setCellValue('E' . $key, $val['create_time']);
               //处理图片
               if (!empty($val['thumb'])) {
                   $thumb = str_replace(request()->domain(), '.', $val['thumb']);
                   // halt($thumb);
                   $drawing[$key] = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
                   $drawing[$key]->setName('图片');
                   $drawing[$key]->setDescription('图片');
                   $drawing[$key]->setPath($thumb);
                   $drawing[$key]->setWidth(80);
                   $drawing[$key]->setHeight(80);
                   $drawing[$key]->setCoordinates('C'.$key);
                   $drawing[$key]->setOffsetX(0);
                   $drawing[$key]->setOffsetY(0);
                   $drawing[$key]->setWorksheet($newExcel->getActiveSheet());
               } else {
                   $objSheet->setCellValue('C' . $key, '');
               }
           }
       } else {
           $this->error('暂无数据');
       }
       //导出
       $filename = '意见反馈';
       $format = 'Xlsx';
       header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
       header("Content-Disposition: attachment;filename=" . $filename . date('Y-m-d') . '.' . strtolower($format));
       header('Cache-Control: max-age=0');
       $objWriter = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($newExcel, $format);
       return $objWriter->save('php://output');
       exit;
   }

完成,就是这么简单

这个方法我是实操过可行的,但是会发现有个明显的问题,如果是网络图片路径,还需要先将图片保存到本地再进行导出,比较麻烦。我就了解了这一种,不知道是不是你们有没有其他更加方便的方法,如果有的话欢迎私信或者评论告诉我哦!

如果您觉得本篇对你有帮助,可以点关注,给个赞,支持一下,过程有遇到什么问题也欢迎评论私信,进行交流

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:41:01  更:2021-07-17 11:41:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 19:55:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码