PHPExcel导出到excel文件封装公共调用方法

PHPExcel导出到excel文件封装公共调用方法。每次只要传入数据key与字段标题名称的键值、二维数组、文件名称(可选)即可快速导出数据到excel文件

PHPExcel官方地址http://phpexcel.codeplex.com/

	 /**
	  * excel导出封装方法 
	  *----------------------------------------
	  * @param  array $keys	设置excel表头键值对 $keys=array('id'=>'id','name'=>'名称')(键名要与$values的值对应)
	  * @param  array $values 二维数组
	  * @param  string $docname  要导出的文件名称
	  *----------------------------------------
	  * @author Nzing
	  * @access public
	  * @return void
	  */
	function excel_export($keys, $values, $docname = '') {
		if (empty($keys) || empty($values) || !is_array($keys) || !is_array($values)) {
			return 'false';
		}
		require_once 'application/libraries/PHPExcel.php';
		require_once 'application/libraries/PHPExcel_Writer_Excel5.php';
		$objExcel = new PHPExcel();
		$objWriter = new PHPExcel_Writer_Excel5($objExcel);
		$objExcel -> setActiveSheetIndex(0);
		$objActSheet = $objExcel -> getActiveSheet();
		$objStyle1 = $objActSheet -> getStyle('1');
		$objFont1 = $objStyle1 -> getFont();
		$objFont1 -> setName('Courier New');
		$objFont1 -> setSize(12);
		$objFont1 -> setBold(true);
		$start_num = 65;
		$unit = array();
		foreach ($keys as $k1 => $v1) {
			$objExcel -> getActiveSheet() -> getColumnDimension(chr($start_num)) -> setWidth(20);
			$objExcel -> getActiveSheet() -> getStyle(chr($start_num)) -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$objExcel -> getActiveSheet() -> getStyle(chr($start_num) . '1') -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$objActSheet -> setCellValue(chr($start_num) . '1', $v1);
			$start_num++;
			array_push($unit, $k1);
		}
		$start_num = 65;
		for ($i = 0; $i < count($keys); $i++) {
			for ($j = 0; $j < count($values); $j++) {
				$objActSheet -> setCellValue(chr($start_num + $i) . ($j + 2), $values[$j][$unit[$i]]);
			}
		}
		$outputFileName = empty($docname) ? time() : $docname;
		$outputFileName .= '.xls';
		//直接输出到浏览器
		header("Pragma: public");
		header("Expires: 0");
		header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
		header("Content-Type:application/force-download");
		header("Content-Type:application/vnd.ms-execl");
		header("Content-Type:application/octet-stream");
		header("Content-Type:application/download");
		header('Content-Disposition:attachment;filename="' . $outputFileName . '"');
		header("Content-Transfer-Encoding:binary");
		$objWriter -> save('php://output');
	}


版权及转载说明

本站原创、转载文章欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区

本站转载文章版权归原作者所有,如发现本站文章涉嫌侵权请点击「联系我们」反馈,本站将立即给予删除

转载请注明:文章转载自:全分享社区 「http://www.aweb.cc

本文标题:PHPExcel导出到excel文件封装公共调用方法

本文地址:http://www.aweb.cc/article/detail/id/49.html

PHPExcel将excel文件转换为数 <<上一篇 下一篇>>如何去掉BOM头,PHP批量去除BOM头