thinkPHP5框架导出Excel文件简单操作示例
本文实例讲述了thinkPHP5框架导出Excel文件简单操作。分享给大家供大家参考,具体如下:
1.首先安装PHPExcel这里用composer安装
composerrequirephpoffice/phpexcel
2.在控制类引用
usePHPExcel_IOFactory; usePHPExcel;
3.在控制其中书写导出方法
/** *导出迟到数据 */ publicfunctionexport_later() { $date=explode("-",input("get.date")); $_opt['year']=$date[0]; $_opt['month']=$date[1]; $laterArray=Db::name('user')->select();//查找user表数据 $xlsName=$_opt['month']."月迟到早退数据统计"; $xlsCell=array( array('user_name','姓名'), array('user_accounts','工号'), array('later_times','迟到次数'), array('total_later','迟到累计(分钟)'), array('early_times','早退次数'), array('total_early','早退累计(分钟)'), );//查出字段输出对应Excel对应的列名 //公共方法调用 export_excel($xlsName,$xlsCell,$laterArray); } /** *公共数据导出实现功能 *@param$expTitle导出文件名 *@param$expCellName导出文件列名称 *@param$expTableData导出数据 */ functionexport_excel($expTitle,$expCellName,$expTableData) { $xlsTitle=iconv('utf-8','gb2312',$expTitle);//文件名称 $fileName=$expTitle.date('_Ymd');//or$xlsTitle文件名称可根据自己情况设定 $cellNum=count($expCellName); $dataNum=count($expTableData); $objPHPExcel=newPHPExcel();//方法一 $cellName=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'); //设置头部导出时间备注 $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$expTitle.'导出时间:'.date('Y-m-dH:i:s')); //设置列名称 for($i=0;$i<$cellNum;$i++){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2',$expCellName[$i][1]); } //赋值 for($i=0;$i<$dataNum;$i++){ for($j=0;$j<$cellNum;$j++){ $objPHPExcel->getActiveSheet(0)->setCellValue( $cellName[$j].($i+3),$expTableData[$i][$expCellName[$j][0]] ); } } ob_end_clean();//这一步非常关键,用来清除缓冲区防止导出的excel乱码 header('pragma:public'); header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"'); header("Content-Disposition:attachment;filename=$fileName.xls");//"xls"参考下一条备注 $objWriter=\PHPExcel_IOFactory::createWriter( $objPHPExcel,'Excel5' );//"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls $objWriter->save('php://output'); }
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《ZendFrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。