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

二.这是我在获取数据,并调用(三)的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']="\t".$v['union_id']."\t";//导出为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可以看下这篇博客

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

												

PHPExcel的简单使用的更多相关文章

  1. 【php】对PHPExcel一些简单的理解

    这里有关于excel文件的几个概念需要跟大家说明一下,这几个概念对于我们的后续编程是很有帮助的:1.工作簿:在excel环境中用来存储数据并处理数据的文件,又称为excel文件或excel文档,   ...

  2. 登陆页、注册页、会员中心页logo图的替换

                  关闭   PHP在线开发笔记       目录视图 摘要视图 订阅 异步赠书:9月重磅新书升级,本本经典           程序员9月书讯      每周荐书:ES6.虚 ...

  3. phpexcel简单用法

    <?php /*php生成excel完整实例代码现求:php生成excel完整实例代码最好能说明如何调用!谢谢java_sunhui4 | 浏览 8131 次 2014-09-24 14:502 ...

  4. tp3.2 phpexcel 简单导出多个sheet(execl表格)

    参考链接:https://blog.csdn.net/u011341352/article/details/70211962 以下是公共类PHPExcel.php文件: // 开始 <?php/ ...

  5. thinkphp3.2和phpexcel导入

    先整个最基础的代码,理解了这个,后面的就非常简单了 $file_name= './Upload/excel/123456.xls'; import("Org.Util.PHPExcel&qu ...

  6. PHPExcel yii2 加载使用

    除了用composer 包管理组件的方式外 我们还可以使用 直接最原始的加载方式---超级简单 1.PHPExcel上下载最新的PHPExcel http://phpexcel.codeplex.co ...

  7. PHPExcel中文开发手册翻译版(2)

    2016年8月18日12:45:14 请注意这个是粗翻译版,仅供参考,不是精校版 精校版后面才会更新 PHPExcel开发者文档 1.目录 2. 4先决条件 2.1.软件要求4 2.2.安装说明4 2 ...

  8. PHPExcel中文开发手册翻译版(1)

    请注意这个是粗翻译版,仅供参考,不是精校版 精校版后面才会更新 英文原版在线文档 https://github.com/PHPOffice/PHPExcel/wiki/User%20Documenta ...

  9. phpexcel引入MVC框架会导致__autoload引入类文件失败的解决办法

    Autoloader.php 的register和load方法 register方法 if (function_exists('__autoload')) { // Register any exis ...

随机推荐

  1. php-fpm 优化

    /usr/local/php/etc/php-fpm.conf 优化 [global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /us ...

  2. Java 代码快速注释 和 取消注释

    注释掉代码: 把要注释的代码选中: 加/* */ 形式的注释  ->  Ctrl+Shift+/ 加 //形式的形式的注释 ->  ctrl+/ 取消代码注释: 把要取消注释的代码选中: ...

  3. DC-1靶机

    DC-1 靶机获取:http://www.five86.com/ 发现IP:arp-scan --interface=eth0 -localnet arp-scan -l 靶机IP:192.168.0 ...

  4. Redis安装与配置问题

    Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  5. 【ARM-Linux开发】gstreamer教程及在DM3730上的应用

    感谢原文作者:goalie高义http://blog.csdn.net/goalietech/article/details/24887955 1 Gstreamer基本概念 GStreamer 是一 ...

  6. Qt——树的搜索实现源码

    一.使用QTreeWidget 头文件: /************************************************************************ 树的搜索类 ...

  7. elasticsearch安装ik

    https://github.com/medcl/elasticsearch-analysis-ik/releases下载对应的ik plugins/目录下创建analysis-ik,再将上述中的zi ...

  8. 葡萄城首席架构师:前端开发与Web表格控件技术解读

    讲师:Issam Elbaytam,葡萄城集团全球首席架构师(Chief Software Architect of GrapeCity Global).曾任 Data Dynamics.Inc 创始 ...

  9. 【51nod】2027 期望问题

    [51nod]2027 期望问题 %%%zsy 看不懂题解的垃圾选手在zsy大佬的讲解下终于知道了这道题咋做-- 先把所有\(a\)从大到小排序 设\(f_{i}\)为前\(i\)个数组成的排列的值, ...

  10. web前端页面解决中文传参乱码问题

    问题背景:在项目中往往会涉及到前端跳转页面时要传一些参数给下一个页面,如果参数是英文或者数字的时候就很好解决,然而有时候传参会涉及到中文汉字,这个时候再单纯的拼接往往就会导致中文乱码,下面我们就该讨论 ...