vendor("phpoffice.PHPExcel.Classes.PHPExcel");// 新建一个excel对象 大神已经加入了PHPExcel 不用引了 直接用!$objPHPExcel=new\PHPExcel();//在vendor目录下 \不能少 否则报错// 设置文档的相关信息$objPHPExcel->getDefaultStyle()->getFont()->setName('微软雅黑');//字体/*设置表头*/$objPHPExcel->getActiveSheet()->mergeCells('A1:E1');//合并第一行的单元格$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1','测评数据统计');//标题$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);// 第一行的默认高度$myrow=2;/*表头所需要行数的变量,方便以后修改*//*表头数据填充*/$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(30);/*设置行高*/$objPHPExcel->setActiveSheetIndex(0)//设置一张sheet为活动表 添加表头信息->setCellValue('A'.$myrow,'')->setCellValue('B'.$myrow,'性别')->setCellValue('C'.$myrow,'园所')->setCellValue('D'.$myrow,'年级')->setCellValue('E'.$myrow,'班级');// 关键数据$myrow=$myrow+1;//刚刚设置的行变量$mynum=1;//序号//遍历接收的数据,并写入到对应的单元格内foreach($daas$key=>$value){$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$myrow,$key)->setCellValue('B'.$myrow,$value)->setCellValue('C'.$myrow,$value)->setCellValue('D'.$myrow,$value)->setCellValue('E'.$myrow,$value);$objPHPExcel->getActiveSheet()->getRowDimension(''.$myrow)->setRowHeight(20);/*设置行高 不能批量的设置 这种感觉 if(has(蛋)!=0){疼();}*/$myrow++;$mynum++;}$mynumdata=$myrow-1;//获取主要数据结束的行号$objPHPExcel->setActiveSheetIndex(0)->getstyle('A3:E'.$mynumdata)->getAlignment()->setHorizontal(\PHPExcel_style_Alignment::HORIZONTAL_CENTER);/*设置格式 水平居中*//*设置数据的边框 手册上写的方法只显示竖线 非常坑爹 所以采用网上搜来的方法*/$style_array=array('borders'=>array('allborders'=>array('style'=> \PHPExcel_Style_Border::BORDER_THIN)));$objPHPExcel->getActiveSheet()->getStyle('A3:E'.$mynumdata)->applyFromArray($style_array);/*设置数据的格式*/$objPHPExcel->getActiveSheet()->getRowDimension(''.$myrow)->setRowHeight(20);/*设置行高*/$objPHPExcel->getActiveSheet()->mergeCells('A'.$myrow.':E'.$myrow);//合并下一行的单元格//关键数据结束//设置宽width 由于自适应宽度对中文的支持是个BUG因此坑爹的手动设置了每一列的宽度 这种感觉 if(has(蛋)!=0){碎();}$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);$objPHPExcel->getActiveSheet()->getStyle('A3:E'.$myrow)->getAlignment()->setWrapText(true);//设置单元格允许自动换行/*设置表相关的信息*/$objPHPExcel->getActiveSheet()->setTitle('测评数据统计');//活动表的名称$objPHPExcel->setActiveSheetIndex(0);//设置第一张表为活动表//纸张方向和大小 为A4横向$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(\PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(\PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);//浏览器交互 导出header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename="测评数据统计.xlsx"');header('Cache-Control: max-age=0');// If you're serving to IE 9, then the following may be neededheader('Cache-Control: max-age=1');// If you're serving to IE over SSL, then the following may be neededheader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');// Date in the pastheader('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');// always modifiedheader('Cache-Control: cache, must-revalidate');// HTTP/1.1header('Pragma: public');// HTTP/1.0$objWriter= \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');$objWriter->save('php://output');
exit;