首页 > 代码库 > php 基于phpexcel制作的导出excel类

php 基于phpexcel制作的导出excel类

最近要写个项目,由于项目中导出excel太多,因此写个类便于使用。

<?php/**@使用方法。*引入类库。* $excel = news excelC();*$excel->fileName = ‘文件名称‘;//设置文件名称,默认为时间戳*$excel->format = ‘2007‘;//文件类型,默认为2007,其他为excel5*$record = array(	‘delKey‘=>array(‘id‘,‘addTime‘,‘status‘),//如果数据$data中有不需要显示的列,可以在此说明。删除不需要导出的键值	‘sort‘			=>array(					‘keyName‘=>array(‘subjectName‘,‘flag‘),//按keyName列排序,如果不存在则不排序。					//‘reorder‘=>‘DESC‘,//排序方式,DESC为倒序,ASC为正序。如果keyName存在则排序keyName,如果不存在则按数组的键名排序,如果reorder不存在则不排序				),//排序   如果sort存在则排序,否则不排序,如果keyName存在则按设置排序,如果不存在则按字符排序,如果reorder不存在或为空或为DES则正序,等于DESC为倒序。	‘excelStyle‘	=>array(						‘setName‘=>‘Arial‘,//字体样式						‘setSize‘=>‘12‘,//字体大小					),//表格全局样式	‘title‘			=>array(‘tableName‘=>‘学科列表‘,‘center‘=>true,‘direction‘=>‘right‘,‘merge‘=>‘2‘,‘setSize‘=>‘30‘),//标题,center垂直,direction为合并方向。right,left,up,down。 merge为合并几个单元格,setSize为字体大小	‘data‘			=>array(						array(‘tableName‘=>‘科目名称‘,‘width‘=>‘30‘,‘setName‘=>‘宋体‘,‘setSize‘=>‘20‘,‘background‘=>‘red‘,‘textColor‘=>‘white‘,‘bold‘=>true,‘underline‘=>true,‘borderColor‘=>‘cyan‘,‘center‘=>true,),						array(‘tableName‘=>‘学科‘,‘width‘=>‘50‘,‘center‘=>true),//颜色表是:black,white,red,green,blue,yellow,magenta,cyan					),//表名称 tableName为名称,width为表格宽度,setName为字体样式,background为背景颜色,textColor为字体颜色,bold为加粗,underline为下划线,borderColor为边框颜色.	‘merge‘			=>array(						//‘flag‘=>array(‘keyword‘=>‘初‘,‘direction‘=>‘right‘,‘merge‘=>‘2‘),merge的键值为需要处理数据数组的键值,keyword为如果存在此关键字才执行其他样式操作,如果keyword不存在则执行所有键值为flag的单元格。						‘all‘=>array(‘width‘=>‘30‘,‘setName‘=>‘宋体‘,‘setSize‘=>‘20‘,‘background‘=>‘red‘,‘textColor‘=>‘white‘,‘bold‘=>true,‘underline‘=>true,‘borderColor‘=>‘cyan‘,‘center‘=>true,),					),//);//导出配置*$excel->export($record,$data);//$record为导出配置,$data为数据库的数据,$data可以为数组,也可以为对象。****/$address = dirname(dirname(__FILE__)).‘/PHPExcel‘;include $address.‘/PHPExcel.class.php‘;include $address.‘/PHPExcel/Writer/Excel2007.php‘;include $address.‘/PHPExcel/Writer/Excel5.php‘;include $address.‘/PHPExcel/IOFactory.php‘;/*****************************生成excel文档。*/class excelC {		public $format = ‘2007‘;//转换格式,默认为2007版本,其他版本,请输入不是2007的数字		public $fileName;//文件名称默认为时间戳。			private $objExcel;		private $letters;		public function __construct()    {		$this->fileName = time();				$this->fileTitle = ‘导出数据‘;				$this->objExcel = new PHPExcel();		$this->letters = $this->letter();	}			//导出excel的属性	private function attribute(){						$this->objExcel->getProperties()->setCreator("力达行有限公司");//创建人				$this->objExcel->getProperties()->setLastModifiedBy("力达行有限公司");//最后修改人				$this->objExcel->getProperties()->setTitle("导出数据");//标题				$this->objExcel->getProperties()->setSubject("导出数据");//题目				$this->objExcel->getProperties()->setDescription("数据导出");//描述				$this->objExcel->getProperties()->setKeywords("office 导出");//关键字				$this->objExcel->getProperties()->setCategory("excel");//种类	}				//设置表(如果只有一个sheet可以忽略该函数,将默认创建。)	private function sheet(){				$this->objExcel->setActiveSheetIndex(0);//设置当前的表				$this->objExcel->getActiveSheet()->setTitle(‘excel‘);//设置表名称。	}			/***************************	*导出excel	*@attr $record为表头及样式设置	*@attr $data为需要导出的数据	*/	public function export($record=array(),$data=http://www.mamicode.com/array()){"Content-Disposition: attachment; filename=\"$this->fileName\"");	 	header(‘Cache-Control: max-age=0‘);				$objWriter = PHPExcel_IOFactory::createWriter($this->objExcel, $excel);		$objWriter->save(‘php://output‘);			}}

 

php 基于phpexcel制作的导出excel类