php excel文件导出之二 图像导出
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文件导出之二 图像导出的更多相关文章
- PHP导出excel文件之权限字段筛选导出
因为导出excel时要过滤掉不是自身权限内的数据,权限有专门的字段,所以导出的数据要具体考量,数据库权限字段是MMId,因为登录的时候MMId已存入SESSION,所以导出的时候只要判断是否在此SES ...
- java使用POI操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
- Java中使用jxl.jar将数据导出为excel文件
Java对Excel文件的读写操作可由jxl.jar或poi.jar实现,这里使用jxl.jar完成对Excel文件的导出. 一.将Excel文件导出在本地 步骤: 创建文件 -> 创建 ...
- C#中dategridview数据导出为excel文件
先从数据库中获取数据,绑定在datagridview中,再从dategridview中导出为excel文件 1.新建窗体,把控件datagridview和按钮设置好,如图
- Spring Boot下的一种导出Excel文件的代码框架
1.前言 在Spring Boot项目中,将数据导出成Excel格式文件是常见的功能.与Excel文件导入类似,此处也用代码框架式的方式实现Excel文件导出,使得代码具有可重用性,并保持导出数据 ...
- 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; ...
- (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库
场景:工作中需要统计一段时间的加班时长,人工统计太过麻烦,就想到使用程序实现来统计 1 如何将 Excel 文件导入到 Navicat for MySQL 数据库 Navicat for MySQL ...
- excel-合并多个Excel文件--VBA合并当前目录下所有Excel工作簿中的所有工作表
在网上找EXCEL多文件合并的方法,思路: 一.Linux 或者window+cmder,直接用命令行cat合并EXCEL文件,但是,需要安装辅助东西才能直接处理(也许也不可以,但是,可以用文件格式转 ...
- 网站开发进阶(二十五)js如何将html表格导出为excel文件
js如何将html表格导出为excel文件 赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! jsp页面数据导出成excel的方法很 ...
随机推荐
- [luoguP2587] [ZJOI2008]泡泡堂(贪心)
传送门 贪心,很像田忌赛马那样,但是因为有平局加一分导致那样的贪心不好处理. 先将两个数组从小到大排序. 比较a最大和b最大,如果a比b大,那么直接赢掉 否则 比较a最小和b最小,如果a比b大,那么直 ...
- git filter-branch应用
1.修改author和committer git filter-branch --commit-filter ' export GIT_AUTHOR_EMAIL=me@example.com; exp ...
- Codeforces Beta Round #95 (Div. 2) C 组合数学
C. The World is a Theatre time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- Docker Daemon 连接方式详解
前言 在 Docker 常用详解指令 一文中粗粗提了一下, Docker 是分为客户端和服务端两部分的, 本文将介绍客户端是如何连接服务端的. 连接方式 1. UNIX域套接字 默认就是这种方式, 会 ...
- 【CF1043B】Lost Array(枚举)
题意:给定n与数组a,求所有的k使得存在x数组能按以下规则构造出a n<=1e3,a[i]<=1e6 思路: #include<cstdio> #include<cstr ...
- TextBox取不到值及其TextBox取不到js赋的值
原文发布时间为:2009-10-22 -- 来源于本人的百度文章 [由搬家工具导入] 原因:使用了一个只读的TextBox控件 曾经遇到过这样的问题:使用了一个只读的TextBox控件,但是在后台代码 ...
- 调用Outlook发送邮件
#region 查找与指定文件关联在一起的程序的文件名 /// <summary> /// 查找与指定文件关联在一起的程序的文件名 /// </summary> /// < ...
- duilib入门简明教程 -- 界面设计器 DuiDesigner (10) (转)
原文转自:http://www.cnblogs.com/Alberl/p/3343838.html 上一个教程讲解了怎么布局最大化.最小化.关闭按钮,但是如果手动去计算这三个按钮的位置和大小的 ...
- Android新特性之CardView的简单使用
Android新特性之CardView的简单使用 我们学习下Android5.0的新增加的控件CardView.首先我们了解一下CardView的基本使用,然后结合RecycleView使用CardV ...
- CSU 1779: 错误的算法【矩阵/模拟】
Description 有道题目是这样的: 输入一个 n 行 m 列网格,找一个格子,使得它所在的行和列中所有格子的数之和最大.如果答 案不唯一,输出任意解即可.比如,在下面的例子中,最优解是(1,3 ...