PHPExcel导出数据使用方法,excel导出表格

作者:Liaodeity - 2015年03月31日

    phpexcel导出数据信息使用方法,可以解决大数据导出问题的优化,防止内存限制导致导出数据表成为空白表。如果在导出的过程中,如果没有其他的问题,但是数据却是空白的,这就说明数据太大,服务器无法处理,所以导出导出的空白内容,可以添加一些代码,对服务器的限制内存进行调节,和phpexcel的一些自带的优化设置。

    如果有兴趣的朋友,可以网上了解更多的设置选项。

<?php 
exportexcel();
function exportexcel(){
	set_time_limit(0);
	require('PHPExcel/PHPExcel.php');
	ini_set('memory_limit','1024M');/*设置为大数据输出时,防止内存限制*/
	$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;  
		$cacheSettings = array( ' memoryCacheSize '  => '16MB'  
	);
	$objExcel = new PHPExcel();

	// 创建文件格式写入对象实例  
	$objWriter = new PHPExcel_Writer_Excel5($objExcel);
	$objActSheet = $objExcel->getActiveSheet(); 
	$objActSheet->setCellValue('A1', 'A列');
	$objActSheet->setCellValue('B1', 'B列');
	$objActSheet->setCellValue('C1', 'C列');

	//设置宽度
	$objActSheet->getColumnDimension('A')->setWidth(15);    
	$objActSheet->getColumnDimension('B')->setWidth(20);    
	$objActSheet->getColumnDimension('C')->setWidth(10);

	//避免某些大数字被使用科学记数方式显示
	$objActSheet->getDefaultStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); 

	//设置右对齐
	$objActSheet->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);   

	/*测试数据,使用是可以读取数据库信息*/
	$data = array(
			0=>array('a'=>'测试a','b'=>'测试b','c'=>'测试c'),
			1=>array('a'=>'1测试a','b'=>'1测试b','c'=>'1测试c')
		);
	foreach($data as $key=>$item){ 
		$key = $key+2;  
	    $objActSheet->setCellValue('A'.$key, $item['a']);        
	    $objActSheet->setCellValue('B'.$key, $item['b']);    
	    $objActSheet->setCellValue('C'.$key, $item['c']);	
		
	}    

	//输出内容
	$outputFileName = 'export'.date('YmdHis',time()).rand(100,999).'.xls';
	header("Content-Type: application/force-download"); 
	header("Content-Type: application/octet-stream"); 
	header("Content-Type: application/download"); 
	header('Content-Disposition:inline;filename="'.$outputFileName.'"'); 
	header("Content-Transfer-Encoding: binary"); 
	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"); 
	ob_clean();
	/*输出方法一,保存输出文件缓存,作为记录*/
	$finalFileName = 'cache/'.$outputFileName.'.xls'; 
	$objWriter->save($finalFileName); 
	echo file_get_contents($finalFileName);
	/*输出方法二,直接输出到浏览器*/
	// $objWriter->save('php://output');

}


本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/255

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!