Maison >développement back-end >tutoriel php >PHPExcel导出Excel文件_PHP教程
error_reporting(0); require_once 'phpexcel/PHPExcel.php'; require_once 'phpexcel/PHPExcel/IOFactory.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("BillHong") ->setLastModifiedBy("BillHong")//创建人 ->setTitle("export to Borwser")//标题 ->setSubject("export to Borwser")//题目 ->setDescription("export to Borwser")//描述 ->setKeywords("export to Borwser")//关键字 ->setCategory("BillHong export to Borwser");//种类 /*设置单元格的标题*/ $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:G1');//合并单元格 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '杭州佳和电气有限公司南京分公司用电量周报表'); //设置font $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getFont()->setSize(14); $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getFont()->setBold(true); $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE); //水平居中===垂直居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A2:G2');//合并单元格 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', '计量时间段2012-03-18 00:00:00--2012-03-25 00:00:00'); //设置font $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getFont()->setSize(10); $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE); //水平居中===垂直居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); /*设置特别表格的宽度*/ $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(5);//表示设置A这一列的宽度,以下一样 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(40); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(8); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(5); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(10); /*设置第3行的内容居中,字体颜色等*/ for ($i = 0; $i <= 6; $i++) { $n = 65; $col = chr($n+$i).'3'; $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getFont()->setSize(11); $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE); $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); } // 以下实现生成Excel单元格坐标。感谢php缘来缘去的Q群大力技术支持 $abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $firstChar = 0; $flag = false; // 是否已经变成AA模式。 $d = 65; $titleLength = count($titles[1]); for ($i = 0; $i < $titleLength; $i++) { // 当已经超过'Z'字母的时候。 if ($d == 91) { $d = 65; // 又将$d设置为初始化值65。 if ($flag) { $firstChar++; $offset = $abc{$firstChar} . chr($d); } else { $flag = true; $offset = $abc{$firstChar} . chr($d); } } // 当循环没有超过'Z'的时候。 else { if ($flag) { $offset = $abc{$firstChar} . chr($d); } else { $offset = chr($d); } } // 设置单元格的值。 $offsets = $offset . '3'; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($offsets, $titles[1][$i]); $d++; } // 以下按照对应坐标将值放进去。以下实现生成Excel单元格坐标。 $k = 4; foreach ($rowset as $rows) { $abc_ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $firstChar_ = 0; $flag_ = false; $d_ = 65; $rowsetLength = count($rowset); // 回调函数。 if($backfunc) { $rows = $backfunc($rows); } $rowsLength = count($rows); for ($a = 0; $a < $rowsLength; $a++) { // 当已经超过'Z'字母的时候。 if ($d_ == 91) { $d_ = 65; // 又将$d设置为初始化值65。 if ($flag_) { $firstChar_++; $offset_ = $abc_{$firstChar_} . chr($d_); } else { $flag_ = true; $offset_ = $abc_{$firstChar_} . chr($d_); } } // 当循环没有超过'Z'的时候。 else { if ($flag_) { $offset_ = $abc_{$firstChar_} . chr($d_); } else { $offset_ = chr($d_); } } $offsets_ = $offset_ . $k; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($offsets_, $rows[$a]); $d_++; } $k++; } $objPHPExcel->getActiveSheet()->setTitle('zenlove test'); $objPHPExcel->setActiveSheetIndex(0); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); header("Content-Disposition:attachment;filename=$filename.xls"); header("Content-Type:application/octet-stream"); header("Content-Transfer-Encoding:binary"); header("Pragma:no-cache"); $objWriter->save('php://output'); exit();