PHP excel导出 表格 ,带图片
PHP excel导出 表格 ,带图片
PHP知识总结
安装
安装命令:composer require phpoffice/phpexcel
先看下结果
这里是方法
/*** 该方法是生成excel表格的* @param $data* @param string $filename* @param string $format* @throws \PHPExcel_Exception* @throws \PHPExcel_Reader_Exception* @throws \PHPExcel_Writer_Exception*/public static function export($data,$filename='excel',$format='xls'){$excel = new PHPExcel();/*设置文本对齐方式*/$excel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$excel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);$objActSheet = $excel->getActiveSheet();$header = array_keys($data[0]);$arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',);if (count($header)>26){$n=0;foreach ($arr as $v){foreach ($arr as $m){$letter[] = $v.$m;$n+=1;}if ($n>200){break;}}$letter = array_merge($arr,$letter);}else{$letter = $arr;}//设置表头for ($i = 0;$i<count($header) ;$i++){$objActSheet->setCellValue($letter[$i].'1', $header[$i]);}$nn = count($header);foreach ($data as $key => $val) {$n = $key+2 ;$excel->getActiveSheet()->getColumnDimension($letter[$n])->setWidth(10); //设置单元格宽度$excel->getActiveSheet()->getColumnDimension($letter[$n])->setAutoSize(true); //内容自适应$excel->getActiveSheet()->getStyle($letter[$key])->getAlignment()->setWrapText(true);//文本自适应$excel->getActiveSheet()->getRowDimension($n)->setRowHeight(100);//单元格高度for ( $i = 0;$i<count($val) ; $i++){$objActSheet->setCellValue($letter[$i] . $n, $val[$header[$i]]); //数据行}if ($val['icon']){/*实例化插入图片类*/$objDrawing = new \PHPExcel_Worksheet_Drawing();/*设置图片路径*/$path = str_replace('http://www.tp6mang.com','',$data[$key]['icon']);$objDrawing->setPath('.'.$path);/*设置图片高度*/$excel->getActiveSheet()->getColumnDimension($letter[$nn])->setWidth(20); //设置单元格宽度$objDrawing->setHeight(100);/*设置图片要插入的单元格*/$objDrawing->setCoordinates($letter[$nn].$n);/*设置图片所在单元格的格式*/$objDrawing->setOffsetX(0);$objDrawing->setRotation(0);$objDrawing->getShadow()->setVisible(true);$objDrawing->getShadow()->setDirection(50);$objDrawing->setWorksheet($objActSheet);continue;}}self::downloadExcel($excel,$filename, $format);}/*** 下载数据EXCEL表格导出* @param $newExcel* @param $filename* @param $format* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception*/public static function downloadExcel($newExcel, $filename, $format){// $format只能为 Xlsx 或 Xls$format = strtolower($format);if ($format == 'xlsx') {header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');} elseif ($format == 'xls') {header('Content-Type: application/vnd.ms-excel');}header('Content-Disposition: attachment;filename=' . $filename .date('Y-m-d').'.'. $format);header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($newExcel, 'Excel2007');$objWriter->save('php://output');//通过php保存在本地的时候需要用到//$objWriter->save($dir.'/demo.xlsx');//以下为需要用到IE时候设置// If you're serving to IE 9, then the following may be needed//header('Cache-Control: max-age=1');//If you're serving to IE over SSL, then the following may be needed//header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past//header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified//header('Cache-Control: cache, must-revalidate'); // HTTP/1.1//header('Pragma: public'); // HTTP/1.0exit;}
到这里就好了,方法是自己写的 ,有什么不足,欢迎留言
PHP excel导出 表格 ,带图片相关推荐
- springboot + 若依 ruoyi + easypoi excel的导入导出(带图片)
springboot + 若依 ruoyi + easypoi excel的导入导出(带图片) 一.官方文档 gitee地址 官方文档 二.快速开始 1.导入 引入依赖 <dependency& ...
- java freemarker导出word 带图片,文件导出后图片无法使用office正常打开
问题记录:java freemark导出word 带图片,文件导出后图片无法使用office正常打开,解决之! 现象:wps打开正常,office如下 修改点: 图片${image1}标签前后保证无空 ...
- java实现word导出(带图片)
java实现word导出(带图片) 转载地址:https://www.jianshu.com/p/98ed03044fe1
- js-table2excel导出表格中图片不显示的解决方法
找到node_modules中的js-table2excel里面的index.js,删除原来的代码 改为以下 /* eslint-disable */ let idTmr; const getExpl ...
- vue 导出word带图片
下载依赖 包 npm install docxtemplater npm install pizzip npm install jszip npm install jszip-utils npm in ...
- Freemarker 模板导出(带图片)
1. 依赖 <!--FreeMarker--><dependency><groupId>org.freemarker</groupId><arti ...
- poi使用模板导出word带图片
1.下面是我做的加载模板导出带图片的word的导出方式,使用之前请映入freemarker的jar包,可以从百度下载即可. 2.首先准备到你要导出的word模板,在要填充的模板中填入el表达式,如下图 ...
- freeMarker导出word带图片
1.maven导入需要的jar包 <!-- 引入freeMarker的依赖包. --><dependency><groupId>org.springframewor ...
- vue 实现前端excel导出表格携带token的两种方法
场景一:后端返回一个api接口,直接点击按钮就能下载Excel文件时: (1)不需要携带token <!-- 注:excelUrl绑定的是后端返回的api接口 --> <el-lin ...
- 使用springboot和freemarker导出word带图片
1.首先,要有一个模板word文件(.doc) 里面的样式要先调整好,需要放图片的地方加一个图片 占位 文字内容也要加一些内容占位 2.然后把word转成.ftl格式文件 很贱单 先把word ...
最新文章
- 《自然-神经科学》发表脑智卓越中心关于昼夜节律中枢的研究成果
- 关于计算机编码的笔记
- linux程序员的proc文件系统
- c#后台线程更新界面
- July面试整理系列--(5)
- 观察者模式Java实现
- python语法参数_python默认参数语法
- discuz php 扩展环境 不支持,配置php扩展memcache
- Python数据结构与算法(2.3)——链表
- mysql建用户无密码_mysql 新建用户,授权,删除用户,修改密码
- java代码生成Excel文件3000条自定义属性的的域账户名
- C++ ORM ODB入门
- DEVC6.0使用教程
- 香港城市大学计算机专业选课,香港城市大学传播与新媒体专业课程设置
- OpenKG祝大家端午安康
- Java | Java模拟实现扑克牌洗牌、发牌过程
- python微信抢红包神器_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
- ajax向后台传递参数为对象实例
- “PE文件格式”1.9版 完整译文(附注释)
- linux中数据库的管理
热门文章
- BMVC reading list
- 数值计算作业:Guass列选主元消去法解线性方程组
- 原生js实现锚点定位,tab跟随内容变化,PC/移动端均适用
- 基于无人机的目标检测平台——数据中转(安卓App)
- 2022年京东年货节红包雨攻略,年货节红包最高领8888元红包
- 计算机ipv4地址修改方法,电脑ip地址的修改方法步骤图
- 如何加声调口诀_汉语拼音声调标注口诀
- python画球面投影_球面投影图片 python opencv实现[附代码]
- IE9下的怪异现象求解
- c语言省略号电脑键盘怎么打,省略号的快捷键怎么打【图解】