PHPExcel基本使用(2) 导入图片

前言:

1)、PHPExcel类

链接:https://pan.baidu.com/s/1VPj1-CqafHkdTxed0SrvYQ
    提取码:ui2o

2)、PHPExcel基本使用

3)、参考地址

1、长数字串正常显示

2、长数字串显示为科学计数

3、代码

/*** @todo 导出报表*/
public function excelAction(){require_once APP_PATH . '/library/PHPExcel.php';$objPHPExcel = new PHPExcel();      //实例化Excel类$titleArray = [ [ '头像', '姓名', '性别', '爱好', '时间', 'ID' ] ];  //设置标题$data = $this->getData(); //获取详情数据$lastData = array_merge($titleArray, $data);   //追加标题和详情数据//定义每一行的列数据, $key =>$val $key:Excel列的名字;$val:二维数组中一维数组的数据(下标从0开始)。综合:每一列的字母所对应的数组下标。$ZiMu = [ 'A'=>0, 'B'=>1, 'C'=>2, 'D'=>3, 'E'=>4, 'F'=>5];$k = 0;    //需要执行 Excel 哪一行foreach ($lastData as $val){$k++; //从第一行开始,每执行一行自增一次foreach ($ZiMu as $_k => $_v ){    //for循环,每执行一次就生成一行Excel数据if($k!=1){ //第二行才有头像,需要写入图片$objPHPExcel->getActiveSheet()->getColumnDimension($_k)->setWidth(20);  //设置这一行宽度$objPHPExcel->getActiveSheet()->getDefaultRowDimension($_k)->setRowHeight( 80 );  //设置这一行表格高度if($_v==0){    //数组下标为0,第0列的时候处理图标//$imageObj[$k] 代表每一行,$_v=0 代表的是一维数组下标为0的数据,就是每个一维数组的第一条数据。综合:第一列的所有数据。$imageObj[$k] = new PHPExcel_Worksheet_Drawing();   //实例化Excel画图类/* 下载图片操作 */$url = $this->download($val[$_v]); //图片的url地址,把线上的图片下载到本地$imageObj[$k] -> setPath($url);     //把本地的图片路径设置到Excel中$imageObj[$k] -> setHeight(80);       //设置第一列高度$imageObj[$k] -> setWidth(80);      //设置第一列宽度$imageObj[$k] -> setCoordinates($_k.$k);//设置图片要插入的单元格$imageObj[$k] -> setOffsetX(12);        //图片偏移距离$imageObj[$k] -> setOffsetY(12);$imageObj[$k] -> setWorksheet($objPHPExcel->getActiveSheet());//unlink($url);    //最后删除文件。}else{//用于解决字符串显示问题//在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号。$objPHPExcel->getActiveSheet()->setCellValueExplicit($_k.$k, $val[$_v],PHPExcel_Cell_DataType::TYPE_STRING);//如果数字字符串不是很长,可以这样写$objPHPExcel->getActiveSheet()->setcellvalue($_k.$k, $val[$_v]);}}else{   //第一行数据,直接写入//下面两行原理同上两行$objPHPExcel->getActiveSheet()->setCellValueExplicit($_k.$k, $val[$_v],PHPExcel_Cell_DataType::TYPE_STRING);$objPHPExcel->getActiveSheet()->setcellvalue($_k.$k, $val[$_v]);}}}//最后通过浏览器输出//$fn = getUniName()."导出信息.xls";//$fn =    APP_PATH."/data/log/订单列表(".date("Y.m.d H:i").").xls";$fn = "订单列表(".date("Y.m.d").").xls";header('Content-Type: application/vnd.ms-excel; charset=utf-8');header("Content-Disposition: attachment;filename=$fn");header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit;
}public function getData(){$photo = 'http://www.pptbz.com/pptpic/UploadFiles_6909/201203/2012031220134655.jpg';$data = array (array ( $photo ,'张三', '男', '吃', '2019-03-20', '123456789876543' ),array ( $photo ,'李四', '男', '喝', '2019-03-21', '123456789034455' ),array ( $photo ,'王五', '男', '玩', '2019-03-22', '987654321234567' ),);return $data;
}/*** @todo 把线上图片下载到本地* @param string $url 线上图片地址* @param string $path 本地需要保存的路径* @return string 本地存放的目录*/
function download($url, $path = '/data/excel/'){$path = APP_PATH.$path; //APP_PATH 项目根目录$this->createDirectory($path);   //递归创建文件夹$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);$file = curl_exec($ch);curl_close($ch);$filename = pathinfo($url, PATHINFO_BASENAME);$savePath = $path . $filename;if(!file_exists($savePath)){$resource = fopen( $savePath, 'a' );fwrite($resource, $file);fclose($resource);}return $savePath;
}/**** @todo 递归创建目录* @param unknown $dir* @return boolean*/
function createDirectory($dir) {return is_dir ( $dir ) or $this->createDirectory ( dirname ( $dir ) ) and mkdir ( $dir, 0777 );  //0777最高权限
}

PHPExcel基本使用(2) 导入图片相关推荐

  1. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

  2. Android --- 夜神模拟器中没有图片怎么办?夜神模拟器中怎么导入图片?

    问题: 夜神模拟器中没有图片怎么办?夜神模拟器中怎么导入图片? 解决: 1.点击右侧文件助手 2.点击"打开电脑文件夹" 3.弹出如下文件夹 4.点击imageShare 5.点击 ...

  3. 在myeclipse中导入图片

    1.在myeclipse中导入图片,选中项目目录建立一个文件夹,名字任意一般是images 2.要说明一点,以后要建立的文件比较多,在引用图片的时候为了方便,一般添加到引用图片的同一级目录下,已用格式 ...

  4. IOS:批量导入图片和视频到模拟器的相册

    批量导入图片和视频到模拟器的相册 IOS开发中我们经常会用到模拟器调试,模拟器有个主要的好处就是程序启动块,最重要的是如果没有证书的话,我们就只能在模拟器上调试了.使用模拟器调试时我们可能碰到需要从系 ...

  5. java怎么导入图片_iPad Pro插U盘不能导入图片?技术宅教你怎么做

    iPad Pro面世有一段时间了,配备Type-C接口让一群技术宅兴奋的搓搓手. Type-C又能输出音频又能输出视频,还能转很多东西,想干啥都行了啊. 市面上很多Type-C扩展坞,那就可以扩展很多 ...

  6. pyqt label上的图片旋转_python中tkinter入门之config、Scale、Canvas和导入图片

    先导入tkinter from tkinter import * import tkinter.font as font root = Tk() config config可以改变控件的属性. l = ...

  7. Python批量导入图片生成能治疗颈椎病的HTML5版课件

    本文要点:Python文件操作,HTML5的figure元素和CSS3属性的用法. 说明:1):本文图片来自于相关阅读中Python批量导出多个PPT/PPTX文件中每个幻灯片为独立JPG图片或Pyt ...

  8. python qt listview如何显示图片_python如何导入图片

    python如何导入图片? 一.导入图片资源 方法1:直接从源图片中导(图片位于images文件夹内) 1 2 3 4 self.label1=QLabel(self)self.label1.setP ...

  9. python如何加载图片_python如何导入图片

    python如何导入图片? 一.导入图片资源 方法1:直接从源图片中导(图片位于images文件夹内) 1 2 3 4 self.label1=QLabel(self) self.label1.set ...

  10. Excel中 使用链接 批量导入图片

    ■前言 我之前看到很多使用VBA方式导入图片的. 今天发现,使用复制链接这种方式,也可以导入图片. ■导入方法 <table><img src="C:\MyPicture\ ...

最新文章

  1. 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
  2. WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口...
  3. shell脚本(查看多台服务器端口)
  4. 讲重点,看趋势——Microsoft Ignite 2018的回顾和展望
  5. OSPF工作机制——OSPF邻居状态机详解(附图)
  6. 模拟电子技术不挂科学习笔记3(放大电路的分析方法)
  7. sql多语句表值函数_构造一个特殊的多语句表函数来检查SQL Server的运行状况
  8. 模版 ----- 一维指数型枚举 排列型枚举 组合型枚举
  9. ros_tools.prompt 断点调试
  10. Bitcoin 0.7.0 发布, P2P网络的匿名数字货币
  11. Go语言入门之指针的使用
  12. 统计学常用知识-Pearson相关系数-显著检验-置信区间
  13. NeurIPS2020 Generalized Focal Loss论文翻译
  14. 网络显示dns服务器错误,电脑出现网络dns异常是怎么回事
  15. 三菱q系列plc连接电脑步骤_三菱Q系列PLC以太网通信设置方法
  16. 爬取股票收盘价,计算神奇九转
  17. 金融交易报文ISO8583协议
  18. photoshop使用技巧_如何使用Photoshop创建逼真的漫画
  19. 用数组实现一个栈结构
  20. bizhubc226说明书_bizhubc226打印机如何扫描?

热门文章

  1. c语言回调函数_为什么计算机专业必学C语言?既然是基础,那为何很多人学不懂?...
  2. 严蔚敏数据结构之线性表的基本操作
  3. 反转链表与链表实现两数相加(简单思路)
  4. Dbutils常见方法
  5. 组网技术-路由与交换技术(五)
  6. php入门案例,thinkphp3.2.1入门之--简单案例实现
  7. python可以替代java吗_Python 并非最好的编程语言,它无法取代 C/C++ 和 Java
  8. c8815 android os,华为C8815官方原厂固件rom系统刷机包_最新升级包降级包下载
  9. android 获取已安装的应用大小,Android获得已安装应用大小
  10. centos7上mycat安装_Mysql+Mycat实现数据库主从同步与读写分离