为方便,之前使用csv方式来导出xls文档。现在需求改了,要导出待有合并单元格形式展示的文档。这次使用 phpexcel来生成,并设置单元格的格式,如宽度、居中、数字格式等。
基本步骤为:加载PHPExcel.php文件,并实例化PHPExcel类,写入数据并设置单元格的格式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | include './Classes/PHPExcel.class.php' ; //引入PHPExcel类所在的文件,根据具体路径修改 $phpexcel = new PHPExcel(); $phpexcel ->setActiveSheetIndex(0); //设置活动sheet $objActSheet = $phpexcel ->getActiveSheet(); //获取当前活动sheet对象 //简单输出几个数据,真实环境中需要遍历循环输出的数据 $objActSheet ->setCellValue( 'A1' , '单号' )->mergeCells( 'A1:A2' ); //合并单元格 $objActSheet ->setCellValue( 'B1' , '出行人' )->mergeCells( 'B1:D1' ); //合并单元格 $objActSheet ->setCellValue( 'B2' , '姓名' ); $objActSheet ->setCellValue( 'C2' , '年龄' ); $objActSheet ->setCellValue( 'D2' , '性别' ); $objActSheet ->setCellValue( 'E1' , '时间' )->mergeCells( 'E1:E2' ); //合并单元格 $objActSheet ->setCellValue( 'A3' , '201512010001' ); $objActSheet ->setCellValue( 'B3' , '小张' ); $objActSheet ->setCellValue( 'C3' , '28' ); $objActSheet ->setCellValue( 'D3' , '男' ); $objActSheet ->setCellValue( 'E3' , '2015-12-01' ); $objActSheet ->setCellValue( 'A4' , '201512010002' ); $objActSheet ->setCellValue( 'B4' , '小妹' ); $objActSheet ->setCellValue( 'C4' , '24' ); $objActSheet ->setCellValue( 'D4' , '女' ); $objActSheet ->setCellValue( 'E4' , '2015-12-02' ); $objStyleA1 = $objActSheet ->getStyle( 'A1' ); //设置单元格内容的数字格式,原始内容全部显示出来 $objStyleA1 ->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); //设置水平居中,垂直居中 $objStyleA1 ->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); $objStyleA1 ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //从指定的单元格复制样式信息. $objActSheet ->duplicateStyle( $objStyleA1 , 'A1:E4' ); //设置单元格的宽度 $objActSheet ->getColumnDimension( 'A' )->setWidth(25); $objActSheet ->getColumnDimension( 'A' )->setWidth(10); $objActSheet ->getColumnDimension( 'A' )->setWidth(10); $objActSheet ->getColumnDimension( 'A' )->setWidth(10); $objActSheet ->getColumnDimension( 'A' )->setWidth(16); header( "Content-Type: application/force-download" ); header( "Content-Type: application/octet-stream" ); header( "Content-Type: application/download" ); header( 'Content-Disposition:inline;filename="demo.xls"' ); header( "Content-Transfer-Encoding: binary" ); header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); header( "Last-Modified: " . gmdate ( "D, d M Y H:i:s" ) . " GMT" ); header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ); header( "Pragma: no-cache" ); $objWriter = PHPExcel_IOFactory::createWriter( $phpexcel , 'Excel5' ); $objWriter ->save( 'php://output' ); |
友情提示:垃圾评论一律封号...