liwuming
/* +----------------------------------------------------------------------
   | introduce:数据导出excel
   +----------------------------------------------------------------------
   | @param $config 表头,文件名等相关配置信息
   +----------------------------------------------------------------------
   | @param $data array 所要导出的结果集
   +----------------------------------------------------------------------
   | Author: liwuming
   +----------------------------------------------------------------------
*/
function exportExcel($config,$data){
	include \'./PHPExcel/PHPExcel.PHPExcel\';
	$objPHPExcel = new PHPExcel();
	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, \'Excel5\');

	$column = 2;
	
	foreach($data as $key => $rows){ //行写入
		$span = ord("A");
		$i = 0;
		foreach($rows as $keyName=>$value){// 列写入
			$j = chr($span);
			$objPHPExcel->getActiveSheet()->setCellValue($j.$column, $value);
			if($config[\'center\'][$i]){
				$objPHPExcel->getActiveSheet()->getStyle($j.$column)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			}else{
				$objPHPExcel->getActiveSheet()->getStyle($j.$column)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
			}
			
			$span++;
			$i++;
		}
		$column++;
	}
	
	//设置sheet名字
	if(!empty($config[\'title\'])){
		$objPHPExcel->getActiveSheet()->setTitle($config[\'title\']);  
	}
	
	//设置默认行高
	$height = !empty($config[\'height\'])?$config[\'height\']:30;
	$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight($height);
	
	//设置默认字体大小
	$objPHPExcel->getActiveSheet()->getDefaultStyle(\'A1:Z1\')->getFont()->setSize(14); 
	$objPHPExcel->getActiveSheet()->getStyle(\'A1:Z1\')->getFont()->setBold(true);  

	//设置表头
	$key = ord("A"); 		//返回字符的 ASCII 码值
	$i = 0;
	foreach($config[\'header\'] as $v){
		$colum = chr($key);
		$objPHPExcel->getActiveSheet()->setCellValue($colum.\'1\', $v);
		$objPHPExcel->getActiveSheet()->getColumnDimension($colum)->setWidth($config[\'width\'][$i]); 
		$objPHPExcel->getActiveSheet()->getStyle($colum.\'1\')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
		$key +=1;
		$i++;
	}

	//设置文件名
	if($config[\'name\'] == \'time\' || $config[\'name\'] == \'\'){
		$date = date("Y_m_d",time());
		$fileName .= "{$date}.xls";
	}else{
		$fileName .= "{$config[\'name\']}.xls";
	}
	
	
	$fileName = iconv("gb2312","utf-8", $fileName); //iconv 文件编码转换
	
	
	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;charset=utf-8" );
	header ( "Content-Type:application/octet-stream" );
	header ( "Content-Type:application/download" );
	header ( \'Content-Disposition:attachment;filename="\'.$fileName.\'"\');
	$objWriter->save(\'php://output\');  
	exit();
}

 

在导出excel时,一定要防止特殊字符,如"=",excel无法识别这样的字符,

 

分类:

技术点:

相关文章: