搜索
开启辅助访问切换到窄版
查看: 53|回复: 0

[PHP] thinkPHP使用PHPExcel将数据导出成Excel文档

[复制链接]

35

主题

287

学分

0

好友

管理员

Rank: 9Rank: 9Rank: 9

积分
287
发表于 2018-10-6 14:20:30 | 显示全部楼层 |阅读模式
  1. thinkPHP使用PHPExcel将数据导出成Excel文档
复制代码

  1.     //导出查询结果
  2.     // $headers 键值对数组,如array('age'=>'年龄','sex'=>'性别')
  3.     // $lists 键值二维数组,如array(array('age'=>1,'sex'=>'男'),array('age'=>1,'sex'=>'女'))
  4.     // $filename 保存的文件名,如果不定义文件名,则程序自动生成
  5.     private function export_excel($headers,$lists,$filename=""){
  6.         vendor('PHPExcel.PHPExcel');
  7.         $filename=date('YmdHis').'.xls';
  8.         $Excel=new \PHPExcel();
  9.         $objWriter = new \PHPExcel_Writer_Excel5($Excel);
  10.         $columns=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','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
  11.         $cnt=count($headers);
  12.         $keys=array();
  13.         $i=0;
  14.         foreach ($headers as $k=>$v){
  15.             $Excel->getActiveSheet()->setCellValue($columns[$i].'1', $v);
  16.             $keys[$columns[$i]]=$k;
  17.             $i++;
  18.         }
  19.         $j=2;
  20.         foreach ($lists as $list){
  21.             for ($i=0; $i < $cnt; $i++) {
  22.                 $Excel->getActiveSheet()->setCellValue($columns[$i].$j,$list[$keys[$columns[$i]]]);
  23.             }
  24.             $j++;
  25.         }
  26.           header("Pragma: public");
  27.           header("Expires: 0");
  28.           header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  29.           header("Content-Type:application/force-download");
  30.           header("Content-Type:application/vnd.ms-execl; charset=GBK");
  31.           header("Content-Type:application/octet-stream");
  32.           header("Content-Type:application/download");
  33.           header('Content-Disposition:attachment;filename='.$filename);
  34.           header("Content-Transfer-Encoding:binary");
  35.           $objWriter->save('php://output');
  36.     }
复制代码


阿Q问答,程序员专属知识问答平台!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

阿Q问答

程序员专属知识问答平台!

关于我们

Archiver|手机版|小黑屋|阿Q问答  

Powered by Discuz! X3.3 © 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表