PHP文件导出 之图像 和 文字同一时候导出

事实上之前写了个php文件导出。跟这个极为相似,由于项目须要对图像进行导出。查询一番。又写了一个,

这个能实现图像的导出(仅仅能是本地图像,不能使用远程图像链接)

/**
* 导出相应的活动投票记录
*/
public function exportxls(){ $alist = datafrom db; //从数据库获取相应的数据 //1. 从数据库来获取相应的二维数组
$alist = array(...);
$list = $alist;
$data = array();
//2. 设置xls的 表头名
$headArr = array("排名","姓名","手机","获奖","參与时间");
if(false === empty($list)){
$i=0;
foreach ($list as $key => $val){
//组装相应的单元格A,B,C。D。。。
$data[$i] = array(
($i+1), //A
$val['name'], //B
$val['tel'], //C
$val['award'], //D
...
);
$i++;
}
}else{
$data[0] = array('暂无相关记录! ');
} $imgindexs = array(5); //放入是 图片的列的索引 第一个是0 此为一维数组 $fileName = "your name-".date('Y-m-d');
$this->output_customer($headArr,$data,$fileName,$imgindexs);
} public function output_customer($headArr,$alist,$filename,$imgindexs){ set_time_limit(0);
ini_set('memory_limit', '-1'); $dir = $_SERVER['DOCUMENT_ROOT']; //定义站点根文件夹 /** 设置报错级别 */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser'); /** Include PHPExcel */
require_once $dir.'/public/phpexcel/PHPExcel.php'; // Create new PHPExcel object
$objPHPExcel = new PHPExcel(); // Set document properties
$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"); /*实例化excel图片处理类*/
$objDrawing = new PHPExcel_Worksheet_Drawing(); $width = 25;
$colnums = count($headArr);
for($i = 0,$startA = "A"; $i < $colnums; $i++) {
// 设置列数
$temp = chr(intval(ord($startA))+$i);
$objPHPExcel->getActiveSheet()->getColumnDimension($temp)->setWidth($width);
} //设置标题
for($i = 0,$startA = "A"; $i < $colnums; $i++) {
// 设置列数
$temp = chr(intval(ord($startA))+$i).'1';
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($temp, $headArr[$i]);
} // Miscellaneous glyphs, UTF-8
$row=2;
foreach($alist as $val){
//设置行高
$objPHPExcel->getActiveSheet()->getRowDimension($k)->setRowHeight(50); $span = 0;
$startA = 'A';
//填充每一行的内容
foreach($val as $factval){
$temp = chr(intval(ord($startA))+$span).$row;
//1.图片填充列
if(in_array($span in $imgindexs)){
/*实例化插入图片类*/
$objDrawing = new PHPExcel_Worksheet_Drawing();
/*设置图片路径 切记:仅仅能是本地图片*/
$objDrawing->setPath($dir.$factval);
/*设置图片高度*/
$objDrawing->setHeight(50);
$objDrawing->setWidth(50);
/*设置图片要插入的单元格*/
$objDrawing->setCoordinates($temp);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
}else{
//2.非图片填充列
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($temp, $factval);
}
$span++;
}
$row++;
} // 重命名 worksheet
$date = date('Y-m-d');
$objPHPExcel->getActiveSheet()->setTitle($filename); // Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0); $filename = iconv("utf-8", "gb2312", $filename.date('Y-m-d')); header('Content-Type: application/vnd.ms-excel;');
header('Content-Disposition: attachment;filename='.$filename.'.xls"');
header('Cache-Control: max-age=0');
// 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.0 //注意这里 第二个參数写成 'Excel2007' 会避免特殊字符或中文乱码
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output'); exit;
}

php excel文件导出之二 图像导出的更多相关文章

  1. PHP导出excel文件之权限字段筛选导出

    因为导出excel时要过滤掉不是自身权限内的数据,权限有专门的字段,所以导出的数据要具体考量,数据库权限字段是MMId,因为登录的时候MMId已存入SESSION,所以导出的时候只要判断是否在此SES ...

  2. java使用POI操作excel文件,实现批量导出,和导入

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...

  3. Java中使用jxl.jar将数据导出为excel文件

      Java对Excel文件的读写操作可由jxl.jar或poi.jar实现,这里使用jxl.jar完成对Excel文件的导出. 一.将Excel文件导出在本地 步骤:   创建文件 -> 创建 ...

  4. C#中dategridview数据导出为excel文件

    先从数据库中获取数据,绑定在datagridview中,再从dategridview中导出为excel文件 1.新建窗体,把控件datagridview和按钮设置好,如图

  5. Spring Boot下的一种导出Excel文件的代码框架

    1.前言 ​ 在Spring Boot项目中,将数据导出成Excel格式文件是常见的功能.与Excel文件导入类似,此处也用代码框架式的方式实现Excel文件导出,使得代码具有可重用性,并保持导出数据 ...

  6. html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式

    先上代码   <script type="text/javascript" language="javascript">   var idTmr; ...

  7. (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库

    场景:工作中需要统计一段时间的加班时长,人工统计太过麻烦,就想到使用程序实现来统计 1 如何将 Excel 文件导入到 Navicat for MySQL 数据库 Navicat for MySQL  ...

  8. excel-合并多个Excel文件--VBA合并当前目录下所有Excel工作簿中的所有工作表

    在网上找EXCEL多文件合并的方法,思路: 一.Linux 或者window+cmder,直接用命令行cat合并EXCEL文件,但是,需要安装辅助东西才能直接处理(也许也不可以,但是,可以用文件格式转 ...

  9. 网站开发进阶(二十五)js如何将html表格导出为excel文件

    js如何将html表格导出为excel文件        赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! jsp页面数据导出成excel的方法很 ...

随机推荐

  1. 【02】webpack 之 入门

    http://www.jianshu.com/p/42e11515c10f 写在前面的话 阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可 ...

  2. Windows + Eclipse 构建mahout运行环境

    mahout的完整运行还是需要hadoop的支持的,不过很多算法只需要能把hadoop的jar包加入到classpath之中就能正常运行. 比如我们在使用LogisticModelParameters ...

  3. pat 甲级 1127. ZigZagging on a Tree (30)

    1127. ZigZagging on a Tree (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...

  4. HDU5032 Always Cook Mushroom(树状数组&&离线)

    树状数组+询问离线.一个优化是需要的,就是先对1000*1000个点先排序,而不是每次都生成这1000*1000个点然后和询问一起排序,那样会tle. #include <iostream> ...

  5. Codeforces Gym101522 D.Distribution of Days-算日期 (La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017)

    D.Distribution of Days The Gregorian calendar is internationally the most widely used civil calendar ...

  6. httpd安装和配置(cgi、wsgi)

    参考:http://webpy.org/cookbook/mod_wsgi-apache.zh-cn 一.yum方式安装: 1.yum install httpd 输入y后继续. 2.看到一下类似的返 ...

  7. 不一样视角的Glide剖析

    推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) Glide是一个快速高效的Android图片加载库,注重于平滑的 ...

  8. 苹果iOS APP配置HTTPS,iOS ATS配置SSL,苹果ATS标准解决方案

    参考沃通:

  9. Beginning Auto Layout Tutorial in iOS 7: Part 3

    How Auto Layout works 在使用auto layout之前,你可能总是使用initWithFrame或者frame, bounds or center属性. 使用约束的好处在于你不需 ...

  10. Autolayout 03

    Debugging in Code 有两个调试layout问题的阶段. 1. Map from “this view is in the wrong place” to “this constrain ...