PHPExcel的简单使用

摘要:
空){$time=爆炸;$startTime=$time[0];$endTime=$time[1];$time=strtotime;$time1=strtottime;$time2=$time1+86400;$arr['start']=日期;$arr['end']=日期;}//获取数据$res=$this-˃model-˃dowload;Foreach{$v['union_id']=“”.$v['union_id'].“”;//导出到Excel时,超过15位的数字将转换为0,这是转换过程}//$indexKey=[“id”,“type”,“content”,“union_id”,”add_time“];如果(!

一.在做PHP开发时,我们会遇到把数据导出变为execl表格的形式,使用PHPExcel就可以,下载地址:https://github.com/PHPOffice/PHPExcel,下载后会显示这么多文件(我们只要其中的Classes目录)PHPExcel的简单使用第1张

二.这是我在获取数据,并调用(三)的execl表格方法

//这是获取传来的时间
$times=$this->request->post("time");
$arr=[];
//有时间根据时间获取数据
if(!empty($times)){
$time = explode("~",$times,2);
$startTime=$time[0];
$endTime=$time[1];
$time=strtotime($startTime);
$time1=strtotime($endTime);
$time2=$time1+86400;
$arr['start']=date("Y-m-d H:i:s",$time);
$arr['end']=date("Y-m-d H:i:s",$time2);
}
//获取数据
$res=$this->model->dowload($arr,$this->table);

foreach($res['rows'] as $key=>&$v){
$v['union_id']=" ".$v['union_id']." ";//导出为excel时数字超过15位会转化为0,这是转变过程
}
//
$indexKey=["id","type","content","union_id","add_time"];
if(!empty($times)){
$name=$startTime."-".$endTime;//这是下载的文件名
//这是调用execl表格的方法
$this->actionExportExcel($res['rows'],$name,$indexKey,$startTime,$endTime);
}else{
$name="全部";//这是下载的文件名
//这是调用execl表格的方法
$this->actionExportExcel($res['rows'],$name,$indexKey,$startTime="",$endTime="");
}

三.(execl表格方法)把Classes目录上传至你的项目目录下,一般我时放在第三方类库下,接下来的代码就是生成execl的方法,这个方法粘贴进去就可以用,注意这个是execl表格的处理方法,你需要导出为execl表格时,你只需要调用此方法,传参数即可

/**
* 创建(导出)Excel数据表格,我创建的是根据时间筛选的
* @param array $list 要导出的数组格式的数据
* @param string $filename 导出的Excel表格数据表的文件名
* @param array $indexKey $list数组中与Excel表格表头$header中每个项目对应的字段的名字(key值)
* @param string $start 这是开始时间
* @param string $end 这是结束时间
* @param array $startRow 第一条数据在Excel表格中起始行
* @param [bool] $excel2007 是否生成Excel2007(.xlsx)以上兼容的数据表
* 比如: $indexKey与$list数组对应关系如下:
* $indexKey = array('id','username','sex','age');
* $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));
*/
function actionExportExcel($list,$filename,$indexKey=array(),$start,$end,$startRow=3,$excel2007=false){
//文件引入,cls是我的第三方类库
require_once APP_ROOT.'/cls/Classes/PHPExcel.php';
require_once APP_ROOT.'/cls/Classes/PHPExcel/Writer/Excel2007.php';
//如果文件名为空,就以时间戳命名
if(empty($filename)) $filename = time();
if( !is_array($indexKey)) return false;
$header_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');
//初始化PHPExcel(),
//yii之类的有命名空间的框架用这种,我用的yii框架
$objPHPExcel = new PHPExcel();
//ci框架就这样用
// $objPHPExcel = new PHPExcel();

//设置保存版本格式,这是yii框架之类的有命名空间框架的使用方法
if($excel2007){
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$filename = $filename.'.xlsx';
}else{
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
$filename = $filename.'.xls';
}

//接下来就是写数据到表格里面去
$objActSheet = $objPHPExcel->getActiveSheet();
//这个你得对execl表格了解下,不了解可以看下我的截图
    //这里开始(你可以设置自己的表头结构)
if(empty($start)){
$objActSheet->setCellValue('A1', "导出时间:全部");
}else{
$objActSheet->setCellValue('A1', "导出时间:".$start."--".$end);
}
$objActSheet->setCellValue('A2', "ID");
$objActSheet->setCellValue('B2', "反馈类型");
$objActSheet->setCellValue('C2', "反馈内容");
$objActSheet->setCellValue('D2', "反馈用户");
$objActSheet->setCellValue('E2', "反馈时间");
$objActSheet->setCellValue('F2', "产品版本");
    //这里结束
foreach ($list as $row) {
foreach ($indexKey as $key => $value){
//这里是设置单元格的内容
$objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);
}
$startRow++;
}

// 下载这个表格,在浏览器输出
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename='.$filename.'');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
}
四.我的execl表格导出如图所示

PHPExcel的简单使用第2张

五.想要详细了解下PHPexcel可以看下这篇博客

http://www.thinkphp.cn/topic/53674.html

免责声明:文章转载自《PHPExcel的简单使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇神牛微信通讯录好友(账号,昵称,备注,描述,标签,省市,个签)导出助手JAVA打印日志使用slf4j下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHPExcel内存泄漏问题

使用PHPExcel来生成 excel 文档是比较消耗内存的,有时候可能会需要通过一个循环来把大数据切分成若干个小的 excel 文档保存来避免内存耗尽。 然而 PHPExcel 存在 circular references 的情况(貌似在最新的 1.6.5 版本中仍然没有去解决这个问题),如果在一次 http 请求过程中反复多次构建 PHPExcel 及...

phpexcel简单用法

<?php /*php生成excel完整实例代码现求:php生成excel完整实例代码最好能说明如何调用!谢谢java_sunhui4 | 浏览 8131 次 2014-09-24 14:502014-09-25 11:15最佳答案 下载phpexcel类库 代码如下:*/ include 'PHPExcel/PHPExcel.php' ; //in...

phpExcel常用方法详解【附有php导出excel加超级链接】

开发包Tests目录有详细使用实例 支持中文,注意文件编码,文件保存为utf-8 写excel //Include class require_once(‘Classes/PHPExcel.php’); require_once(‘Classes/PHPExcel/Writer/Excel2007.php’); $objPHPExcel = new PHP...

phpexcel 使用一,解决自动加载问题

Yii框架中使用PHPExcel导出Excel文件 最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法:   1、首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 5 6 7 8 // autoloading model and component cla...

使用PHPExcel解析Excel表格

安装类库 从GitHub上下载PHPExcel类库地址:https://github.com/PHPOffice/PHPExcel 解压后将Classes文件夹移动到ThinkPHP的extend目录,并将其重命名为phpexcel 在项目中需要的地方添加引用 import('phpexcel.PHPExcel', EXTEND_PATH); 代码实...

thinkphp整合系列之phpexcel生成生成excel文件

在后台管理中会经常需要将数据生成excel表格的; php生成excel有两种方案; 一种是通过phpexcel生成xls格式的表格文件; 另一种则直接通过逗号换行生成csv格式的表格文件; 这里先讲解thinkphp整合phpexcel的过程; 示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadm...