PHPExcel安装:

composer require phpoffice/phpexcel

安装后目录如下:

调用时,需引入classes目录下的PHPExcel.php的PHPExcel类。
代码如下:

require "./vendor/phpoffice/phpexcel/Classes/PHPExcel.php";
// 设置脚本最大执行时间
set_time_limit(0);
// 设置最大可用内存限制
ini_set("memory_limit", "1024M");
$objPHPExcel = new PHPExcel();
// 设置文件属性,在xls文件-->属性-->详细信息里可以看到这些值,xml表格没有这些值
$objPHPExcel->getProperties()  //获得文件属性对象,给下文提供设置资源->setCreator("Maarten Balliauw")                 //设置文件的创建者->setLastModifiedBy("Maarten Balliauw")          //设置最后修改者->setTitle("Office 2007 XLSX Test Document")    //设置标题->setSubject("Office 2007 XLSX Test Document")  //设置主题->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")    //设置备注->setKeywords("office 2007 openxml php")        //设置标记->setCategory("Test result file");                //设置类别
$objWriter = PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');
$objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的->setCellValue( 'A1', '昵称' )         //给表的单元格设置数据->setCellValue( 'B1', '手机号' )->setCellValue( 'C1', '头像' );
$objActSheet = $objPHPExcel->getActiveSheet();  //设置内容$data_arr = [["nickname" => "张三","phone" => 12345678910,"avatar" => './images/a1.jpg'],["nickname" => "李四","phone" => 12345678911,"avatar" => './images/a2.jpg']
];
$step_num = 2;
foreach ($data_arr as $k=>$v){$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $step_num, $v['nickname']);$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . $step_num, $v['phone']);$objDrawing  = new PHPExcel_Worksheet_Drawing();// 获取图片地址$objDrawing->setPath($v['avatar']);// 设置图片存放在表格的位置$objDrawing->setCoordinates('C' . $step_num);// 设置表格宽度$objActSheet->getColumnDimension('C')->setWidth(20);// 设置表格高度$objActSheet->getRowDimension($step_num)->setRowHeight(60);// 设置图片宽//$objDrawing->setWidth(80);// 设置图片高$objDrawing->setHeight(60);// 设置X方向偏移量$objDrawing->setOffsetX(10);// 设置Y方向偏移量$objDrawing->setOffsetY(10);$objDrawing->setWorksheet($objActSheet);$step_num++;
}
// 设置垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A1:C'.($step_num-1))->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);// 清空输出缓冲区
ob_end_clean();
// 设置表名
$file_name = date('Y-m-d H:i:s').'-个人信息.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$file_name.'"');
header('Cache-Control: max-age=0');
$objWriter->save( 'php://output');
exit;

导出结果:

图片路径不是本地服务器时,会提示如下错误:

解决方法如下:

<?php
require "./vendor/phpoffice/phpexcel/Classes/PHPExcel.php";// 设置脚本最大执行时间
set_time_limit(0);
// 设置最大可用内存限制
ini_set("memory_limit", "1024M");
$objPHPExcel = new PHPExcel();
// 设置文件属性,在xls文件-->属性-->详细信息里可以看到这些值,xml表格没有这些值
$objPHPExcel->getProperties()  //获得文件属性对象,给下文提供设置资源->setCreator("Maarten Balliauw")                 //设置文件的创建者->setLastModifiedBy("Maarten Balliauw")          //设置最后修改者->setTitle("Office 2007 XLSX Test Document")    //设置标题->setSubject("Office 2007 XLSX Test Document")  //设置主题->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")    //设置备注->setKeywords("office 2007 openxml php")        //设置标记->setCategory("Test result file");                //设置类别
$objWriter = PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');
$objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的->setCellValue( 'A1', '昵称' )         //给表的单元格设置数据->setCellValue( 'B1', '手机号' )->setCellValue( 'C1', '头像' );
$objActSheet = $objPHPExcel->getActiveSheet();  //设置内容$data_arr = [["nickname" => "张三","phone" => 12345678910,"avatar" => 'https://img2.woyaogexing.com/2022/07/22/f8d186aa59ce881d!400x400.jpg'],["nickname" => "李四","phone" => 12345678911,"avatar" => 'https://img2.woyaogexing.com/2022/07/22/a9d9bf78fb6dfb9c!400x400.jpg']
];
$step_num = 2;
foreach ($data_arr as $k=>$v){$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $step_num, $v['nickname']);$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . $step_num, $v['phone']);$ext = end(explode(".",$v['avatar']));if ($ext == 'jpg'){$img = @imagecreatefromjpeg($v['avatar']);}if ($ext == 'gif'){$img =  @imagecreatefromgif($v['avatar']);}if ($ext == 'png'){$img = @imagecreatefrompng($v['avatar']);}//实例化图片操作类$objDrawing  = new PHPExcel_Worksheet_MemoryDrawing();$objDrawing->setImageResource($img);//渲染方法$objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT);$objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);// 设置图片存放在表格的位置$objDrawing->setCoordinates('C' . $step_num);// 设置表格宽度$objActSheet->getColumnDimension('C')->setWidth(20);// 设置表格高度$objActSheet->getRowDimension($step_num)->setRowHeight(60);// 设置图片宽//$objDrawing->setWidth(80);// 设置图片高$objDrawing->setHeight(60);// 设置X方向偏移量$objDrawing->setOffsetX(10);// 设置Y方向偏移量$objDrawing->setOffsetY(10);$objDrawing->setWorksheet($objActSheet);$step_num++;
}
// 设置垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A1:C'.($step_num-1))->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);// 清空输出缓冲区
ob_end_clean();
// 设置表名
$file_name = date('Y-m-d H:i:s').'-个人信息.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$file_name.'"');
header('Cache-Control: max-age=0');
$objWriter->save( 'php://output');
exit;

导出结果:

实际开发过程中,如非特别需要,尽量不要直接导出图片,导出图片不仅消耗PHP内存空间,而且文件也比较大,导出缓慢,花费时间长。

PHPExcel导出图片相关推荐

  1. php下载图片excel过大,PHPExcel导出图片大小设置问题

    使用PHPExcel导出图片到excel的时候,图片大小只会按照一定的比例显示,不能按照自己的要求显示大小,不知道怎么解决,有哪位大神帮下我吗? $objDrawing = new PHPExcel_ ...

  2. phpexcel 导出图片

    $objPHP = new PHPExcel();$objActSheet = $objPHP->getActiveSheet();$objActSheet->setCellValue(' ...

  3. php excel 导出图片,phpexcel 导出多张图片

    phpexcel 导出图片 我在网上看了资料 都是导出一张图片,我想导出每行第一列是一个图片,如何实现,下边是一个导出的方法,我应该怎么加入哪?其他的数据都导出来了,就图片出不来,图片的路径信息保存到 ...

  4. PHPExcel处理导入导出图片,链接

    PHPExcel是一个非常强大的PHP表格处理模块,提供一组PHP编程语言,它允许您编写和读取不同的电子表格文件格式,如Excel(纸). xls,Excel 2007(OfficeOpenXML). ...

  5. php单元格字体颜色,PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽...

    PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽 2020-08-31 85 一:读取excel表模板$ph ...

  6. php将图片导出到表格,phpexcel 导出文档(包括导出图片)

    //phpexcel导出 包括导出图片,这边是完整的代码, 首先需要 下载 他的文档包 然后引入, 其次查询你所想导出的数据,多条就以循环遍历的的方式 把它写入到 excel文档, 这边需要注意的是图 ...

  7. phpExcel导出excel加超级链接和图片的实例代码

    <span style="font-family: Arial, 宋体; font-size: 14px; line-height: 24px; text-indent: 14px; ...

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

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

  9. PHPExcel导出excel

    PHPExcel导出excel 如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312: $yourStr = mb_convert_ ...

最新文章

  1. 2w字大白话讲解Spring Cloud,必须收藏
  2. Lazy Line Painter – 很有趣的 jQuery 路径动画插件
  3. 新年来临,给大家送上机器学习,人工智能相关书籍,这可能是中奖率最高的一次送书活动...
  4. Windows Phone 7 自动完成输入框控件AutoCompleteBox
  5. Spring Boot中如何扩展XML请求和响应的支持
  6. msys2 config.guess: unable to guess system type
  7. SDUT-2132_数据结构实验之栈与队列二:一般算术表达式转换成后缀式
  8. java什么是网络接口_java 网络编程 -- IP地址的表示与网络接口信息的获取(InetAddress和NetworkInterface)...
  9. 第一个express app 详细步骤
  10. js工作笔记003---js编写习惯_提高网页显示速度
  11. 每周荐书:机器学习、Spring MVC、Android(评论送书)
  12. node.js学习笔记之浅谈观察者模式
  13. Docker镜像构建
  14. yum 安装jenkins
  15. 华为oj题目c语言,【华为OJ平台习题】
  16. 《基于卷积神经网络(CNN)的网络流量分类》优秀本科毕设实验总结
  17. 批量为Word2010尾注加方括号[]的方法
  18. 股票量化分析工具QTYX使用攻略——北上资金持仓选股(更新2.5.8)
  19. maven配置私服地址(公司私服)记录
  20. SAS 学习笔记(六)— SAS与属性数据分析

热门文章

  1. 数据结构(python) —— 【29: 贪心算法之换钱问题】
  2. SAP 能不能撤销已冲销的凭证?能的话怎么操作?
  3. 一个人怎么才能做好微信公众号
  4. 一个JavaScript写的黑白棋AI
  5. HTTPS IP直连问题小结
  6. 吉隆坡Mac高清动态壁纸
  7. 什么是模糊神经网络结构,模糊神经网络应用实例
  8. 信誉软件测试工资,软件测试脱产学习价格信誉保证_尚脑教育经得起考验
  9. Python Level 4 程序题:商和余数,给定被除数和除数,求整数商及余数
  10. js 判断当前的手机系统类型