首页 > 编程 > PHP > 正文

ThinkPHP框架实现导出excel数据的方法示例

2020-03-22 16:46:48
字体:
来源:转载
供稿:网友
这篇文章主要介绍了Thinkhtml' target='_blank'>PHP框架实现导出excel数据的方法,结合实例形式分析了thinkPHP添加org扩展基于PHPExcel进行Excel数据的导出操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了ThinkPHP框架实现导出excel数据的方法。分享给大家供大家参考,具体如下:

在ThinkPHP框架下,导出excel数据的方法示例:

在操作前,应该在系统框架的扩展目录中添加ORG库,即要包含ThinkPHP/Extend/Library/ORG/Util/PHPExcel.class.php文件及其相关支持文件。

 ?phpheader( Content-type: text/html; charset=utf-8 class MesTestAction extends Action { //测试导出excel数据 public function tpGetExcel() { //创建对象 import( ORG.Util.PHPExcel //从PHPExcel目录导PHPExcel.php类文件 $excel = new PHPExcel(); $data = M()- query( SELECT userid,username,stepgoal FROM tp_data_user LIMIT 2775  //Excel表格式,这里简略写了3列 $letter = array( A , B , C  //表头数组 $tableheader = array( userid , 用户名 , 目标步数  $count= count($data);//总的数据行数 $listNum = 500;//每个sheet页最大数据行数 $num = ceil($count/$listNum);//sheet页个数 $MuitData = array_chunk($data,$listNum,false);//分割总的数据,每页最多$listNum行有效数据 //var_dump($MuitData);//die( as  //缺省情况下,PHPExcel会自动创建第一个SHEET,其索引SheetIndex=0 //设置 当前处于活动状态的SHEET 为PHPExcel自动创建的第一个SHEET $excel- setActiveSheetIndex(0); //objPHPExcel //设置sheet的title $excel- getActiveSheet()- setTitle( 考核得分第 . 1 . 页  //设置sheet的列名称 for($k = 0; $k count($tableheader); ++$k) { $excel- getActiveSheet()- setCellValue( $letter[$k] . 1 , $tableheader[$k] //第一行数据 //填充表格信息 处理第1块数据 $crrntSheetLineNo = count($MuitData[0]) + 1; for ( $j = 2; $j = $crrntSheetLineNo; ++$j) { //遍历每一行 $k = 0; foreach ( $MuitData[0][$j - 2] as $key = $value ) {//遍历具体行的某一列 $excel- getActiveSheet()- setCellValue( $letter[$k] .$j, $value //第$k列 第$j行 $k++; //后续的sheet页及数据块 for ( $i = 1; $i $num; ++$i) { //创建第$i个sheet $msgWorkSheet = new PHPExcel_Worksheet($excel, 考核得分第 .($i + 1). 页 //创建一个工作表 $excel- addSheet($msgWorkSheet); //插入工作表 $excel- setActiveSheetIndex($i); //切换到新创建的工作表 //设置sheet的列名称 for($k = 0; $k count($tableheader); ++$k) { $excel- getActiveSheet()- setCellValue( $letter[$k]1 , $tableheader[$k] //第一行数据 //填充表格信息 处理第$i块数据 $crrntSheetLineNo = count($MuitData[$i]) + 1; //var_dump($crrntSheetLineNo);var_dump($MuitData[$i-1]);die( as  for ( $j = 2; $j = $crrntSheetLineNo; ++$j) { //遍历每一行 $k = 0; foreach ( $MuitData[$i-1][$j - 2] as $key = $value ) {//遍历具体行的某一列 $excel- getActiveSheet()- setCellValue( $letter[$k]$j , $value //第$k列 第$j行 ++$k; usleep(100); //创建Excel输出对象 $filename = 大奖赛培训考核得分.xls  $write = new PHPExcel_Writer_Excel5($excel); ob_end_clean();//清除缓冲区,避免乱码 //输出到本地 $write- save( iconv( utf-8 , gbk , $filename) ); //输出到浏览器 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/download  header( Content-Type:application/octet-stream  $encoded_filename = urlencode($filename); $encoded_filename = str_replace( + , %20 , $encoded_filename); $ua = $_SERVER[ HTTP_USER_AGENT  if (preg_match( /MSIE/ , $ua)) { header( Content-Disposition: attachment; filename= . $encoded_filename .  } else if (preg_match( /Firefox/ , $ua)) { header( Content-Disposition: attachment; filename*= utf8/ / . $filename .  } else { header( Content-Disposition: attachment; filename= . $filename .  header( Content-Transfer-Encoding:binary  $write- save( php://output ? 

您可能感兴趣的文章:

原生JS实现Ajax通过POST方式与PHP进行交互的方法示例php技巧

Laravel 集成 Geetest验证码的方法php实例

Phpstorm+Xdebug断点调试PHP的方法php实例

以上就是ThinkPHP框架实现导出excel数据的方法示例的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表