一.在做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. PAT 甲级 1012 The Best Rank (25 分)(结构体排序)

    题意: 为了评估我们第一年的CS专业学生的表现,我们只考虑他们的三个课程的成绩:C - C编程语言,M - 数学(微积分或线性代数)和E - 英语.同时,我们鼓励学生强调自己的最优秀队伍 - 也就是说 ...

  2. Spark源码(1): SparkConf

    1. 简介 SparkConf类负责管理Spark的所有配置项.在我们使用Spark的过程中,经常需要灵活配置各种参数,来使程序更好.更快地运行,因此也必然要与SparkConf类频繁打交道.了解它的 ...

  3. 字符编码笔记:ASCII,Unicode 和 UTF-8(理解)

    1.ASCII 码 美国制定的字符编码规则,对英语字符与二进制位之间的关系做了统一规定. 占一个字节,8 位,最多可表示 2^8 = 256 种状态(字符) 实际共有 128 个字符,只占用一个字节的 ...

  4. Reactor系列(五)map映射

    #java# #reactor# #flux# #map# #映射# 视频解视: https://www.bilibili.com/video/av79179444/ FluxMonoTestCase ...

  5. C语言课程设计

    目录 实现目的 游戏玩法介绍 实现流程与作品架构 任务列表及贡献度 总结感想 作品源码与仓库地址(附页) 资料引用与出处(附页) 实现目的 2048,作为一款极其经典的游戏,从发行到现在,已经有了极多 ...

  6. poj1961(kmp算法next数组应用)

    题目链接:https://vjudge.net/problem/POJ-1961 题意:给定一个长为n的字符串(n<=1e6),对于下标i(2<=i<=n),如果子串s(1...i) ...

  7. Ember.js和Vue.js,哪种框架更适合你?

    JavaScript最初是为Web应用程序而创建的.随着前端技术的发展,比起纯JavaScript 脚本,大多数开发人员更喜欢使用基于JavaScript的框架来开发Web应用,如Vue.React等 ...

  8. MySQL数据库CPU飙升紧急处理方法

    MySQL数据库CPU飙升紧急处理方法 运行平稳的数据库,如果遇到CPU狂飙,到80%左右,那一定是开发写的烂SQL导致的,DBA首先要保证的是,数据库别跑挂了,所以我们要把那些运行慢的SQL杀死并记 ...

  9. javaSE总结(一)-java数据类型和运算符

    一.注释 (1)单行注释: // (2)多行注释:/*  */  (3)文档注释:/**  */ 二.标识符和关键字 (1)分隔符:分号; 花括号{} 方括号[] 圆括号() 空格 圆点(.)     ...

  10. 创建Vofuria工程,获取产品密钥

    进入Vofuria官网 https://developer.vuforia.com/vui/develop/licenses/free/new 然后点击 然后在License Name中填写izji刚 ...