php Excel  文件导出

phpExcel 官网 http://phpexcel.codeplex.com/

/**
* 导出特定文件
* 依据详细情况而定
*/
public function download(){ //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('暂无相关记录。');
} $fileName = "test-excel_";
$this->explodexls($data,$headArr,$fileName);
} /**
* 工具函数 处理 xls 文件导出
* @param $data array() 相应的tbody 数据
* @param $headArr array() 相应的thead 数据
* @param $fileName string 指定的导出文件名称
* @return xls格式 文件自己主动导出
*/
public function explodexls($data,$headArr,$fileName){
//注意这里换成相应的根文件夹 找到绝对路径
$dir = __dir__.'/../../../../public';
require_once $dir.'/excel/PHPExcel.php';
require_once $dir.'/excel/PHPExcel/Writer/Excel2007.php';
require_once $dir.'/excel/PHPExcel/Writer/Excel5.php';
include_once $dir.'/excel/PHPExcel/IOFactory.php'; if(empty($data) || !is_array($data)){
die("data must be a array");
}
if(empty($fileName)){
exit;
}
$date = date("Y_m_d",time());
$fileName .= "_{$date}.xls";
//创建新的PHPExcel对象
$objPHPExcel = new PHPExcel();
$objProps = $objPHPExcel->getProperties();
//设置表头
$key = ord("A");
foreach($headArr as $v){
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'1', $v);
$key += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach($data as $key => $rows){ //行写入
$span = ord("A");
foreach($rows as $keyName=>$value){// 列写入
$j = chr($span);
$objActSheet->setCellValue($j.$column, $value);
$span++;
}
$column++;
}
//$fileName = iconv("utf-8", "gb2312", $fileName);
//重命名表
$objPHPExcel->getActiveSheet()->setTitle('Simple');
//设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
//将输出重定向到一个clientweb浏览器(Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; filename=\"$fileName\"");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output'); //文件通过浏览器下载
exit;
}

最新文章

  1. enote笔记语言(2)
  2. ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)
  3. 控制网页的Panel是否显示
  4. Servlet获得Http请求,GET/POST
  5. 【BZOJ】1076: [SCOI2008]奖励关(状压dp+数学期望)
  6. 用户登录验证例题用的ajax
  7. Exchange模式功能
  8. CPLEX IDE 菜单栏语言设置( 中文 英文 韩文 等多国语言 设置)
  9. java 23 种设计模式
  10. 关于Android的一些理解
  11. iOS进阶面试题----经典10道
  12. 金融量化分析【day110】:Pandas的Series对象
  13. vue 封装组件
  14. LCMapString/LCMapStringEx实现简体字、繁体字的转换。
  15. Sidekiq定时任务时间设置
  16. 廖雪峰Java6 IO编程-2input和output-6classpath资源
  17. What is the best Java email address validation method?
  18. 猫眼电影爬取(二):requests+beautifulsoup,并将数据存储到mysql数据库
  19. ajax传JSON时设置的contenttype导致JAVA中request.getParameter("")怎么也接收不到数据
  20. Tomcat8.5 升级tomcat版本导致出现异常,Base64不存在

热门文章

  1. [NOI2016]优秀的拆分(SA数组)
  2. iOS打造属于自己的用户行为统计系统
  3. linux中的硬连接和软连接
  4. vim基础学习之EX命令
  5. 初识activiti
  6. Python(四) 分支、循环、条件与枚举
  7. Web API总结
  8. 使用java自带的xml解析器解析xml
  9. 关于idea开发工具常用的快捷键
  10. flex RemoteObject 的两种使用方法