用thinkphp写的导出excel示例

来源:互联网 发布:赵文卓甄子丹事件 知乎 编辑:程序博客网 时间:2024/06/05 21:11
function excel_import(){header("content-Type: text/html; charset=utf-8");import("@.ORG.PHPExcel");$sign = M("sign");$showtime=date("YmdHis");$keywords=empty($_GET['keywords'])?"":$_GET['keywords'];$starttime=empty($_GET['starttime'])?"":$_GET['starttime'];$endtime=empty($_GET['endtime'])?"":$_GET['endtime'];$condition=array(1=>1,);if(!empty($keywords)){$condition['b.username']=array("like","%".$keywords."%");}if((!empty($starttime)) && (!empty($endtime))){$condition['a.signtime']=array("between",$starttime.",".$endtime);}else{if(!empty($starttime)){$condition['a.signtime']=array("egt",$starttime);}if(!empty($endtime)){$condition['a.signtime']=array("elt",$endtime);}}$data = $sign->alias("a")->join("zp_member as b ON a.memberid=b.id")->where($condition)->field("a.*,b.username")->select();$name='Excelfile'.$showtime;    //生成的Excel文件文件名//$res=service('ExcelToArrary')->push($data,$name);error_reporting(E_ALL);date_default_timezone_set('Europe/London');$objPHPExcel = new PHPExcel();$objPHPExcel->setActiveSheetIndex(0)//设置表的名称标题->setCellValue('A1',"姓名")->setCellValue('B1',"签到时间");foreach($data as $k => $v){$num=$k+2;$time = date("Y-m-d H:i:s",$v['signtime']);$objPHPExcel->setActiveSheetIndex(0)//Excel的第A列->setCellValue('A'.$num, $v['username'])    ->setCellValue('B'.$num, $time);}$objPHPExcel->getActiveSheet()->setTitle('签到记录');$objPHPExcel->setActiveSheetIndex(0);header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename="'.$name.'.xls"');header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit();}

原创粉丝点击