zoukankan      html  css  js  c++  java
  • PHPExcel生成Excel模版

      近来公司oa项目需要用到phpExcel扩展,整理如下:

    /**
    	 * 下载excel模版的方法
    	 */
    	public function downloadExcelTemplate() {
    		require_once 'extensions/PHPExcel/PHPExcel.php';
    		require_once 'extensions/PHPExcel/PHPExcel/Writer/Excel2007.php';
    		require_once 'extensions/PHPExcel/PHPExcel/IOFactory.php';
    	
    		// 创建一个处理对象实例
    		$objExcel = new PHPExcel();
    	
    		//设置文档基本属性
    		$objProps = $objExcel->getProperties();
    		$objProps->setCreator("Zeal Li");
    		$objProps->setLastModifiedBy("Zeal Li");
    		$objProps->setTitle("Office XLS Test Document");
    		$objProps->setSubject("Office XLS Test Document, Demo");
    		$objProps->setDescription("kol document, generated by PHPExcel.");
    		$objProps->setKeywords("office excel PHPExcel");
    		$objProps->setCategory("Test");
    	
    		//设置当前的sheet索引,用于后续的内容操作。
    		//一般只有在使用多个sheet的时候才需要显示调用。
    		//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0
    		$objExcel->setActiveSheetIndex(0);
    	
    		$objActSheet = $objExcel->getActiveSheet();
    	
    		//设置当前活动sheet的名称
    		$objActSheet->setTitle('kol用户表');
    	
    		//合并单元格
    		$objActSheet->mergeCells('A1:P1');
    		
    		//设置单元格内容
    	
    		$objActSheet->setCellValue('A1', '填写要求:
    				1:请填完整每个格子的内容,相同内容请复制填写完整。
    				2:没有的数据可以空着不填写。
    				3:价格的单位默认为“元/条”,广告频次单位为“次/天”,注册日期,格式为日期格式;
    				4:联系方式必须严格要求是QQ:XXXXXXXX 或 Email:XXXXXXXXXX
    				      或 Phone:XXXXXXXXXXX 之间用“/”分割,之间空格不限制
    				5:字段的格式详细要求如下:字段 "一级分类" "二级类型" "认证类型" "平台分类"'); //字符串内容
    		$objActSheet->setCellValue('A2', '一级分类');
    		$objActSheet->setCellValue('B2', '二级分类');
    		$objActSheet->setCellValue('C2', '账号名称');
    		$objActSheet->setCellValue('D2', '账号的地址');
    		$objActSheet->setCellValue('E2', '粉丝数');
    		$objActSheet->setCellValue('F2', '粉丝级别');
    		$objActSheet->setCellValue('G2', '认证类型');
    		$objActSheet->setCellValue('H2', '认证信息');
    		$objActSheet->setCellValue('I2', '是否精品');
    		$objActSheet->setCellValue('J2', '平台分类');
    		$objActSheet->setCellValue('K2', '注册日期 ');
    		$objActSheet->setCellValue('L2', '最低价格');
    		$objActSheet->setCellValue('M2', '最高价格');
    		$objActSheet->setCellValue('N2', '硬广报价');
    		$objActSheet->setCellValue('O2', '软广报价');
    		$objActSheet->setCellValue('P2', '微任务直发原价');
    		$objActSheet->setCellValue('Q2', '微任务转发原价');
    		$objActSheet->setCellValue('R2', '大客户微任务价格');
    		$objActSheet->setCellValue('S2', '税点(%)');
    		$objActSheet->setCellValue('T2', '广告频次');
    		$objActSheet->setCellValue('U2', '真实姓名');
    		$objActSheet->setCellValue('V2', '联系方式');
    		$objActSheet->setCellValue('W2', '个性信息 ');
    		$objActSheet->setCellValue('X2', '备注');
    		
    		//A1自动换行
    		$objActSheet ->getStyle('A1')->getAlignment()->setWrapText(true);
    	
    		// 设置行高
    		$objActSheet->getRowDimension('1')->setRowHeight(100);
    		
    		//设置默认宽度以及对齐方式
    		$aligment = $objActSheet->getDefaultStyle()->getAlignment();
    		$objActSheet->getDefaultColumnDimension()->setWidth(12);
    		$aligment->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    		$aligment->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    		$objActSheet->getDefaultRowDimension()->setRowHeight(25);//默认高度
    	
    		//设置特定单元格宽度
    		$objActSheet->getColumnDimension('D')->setWidth(17);//url
    		$objActSheet->getColumnDimension('P')->setWidth(20);//微任务直发原价
    		$objActSheet->getColumnDimension('Q')->setWidth(20);//微任务转发原价
    		$objActSheet->getColumnDimension('R')->setWidth(20);//大客户微任务价格
    		$objActSheet->getColumnDimension('V')->setWidth(20);//联系方式
    	
    		//设置宽度
    		$objStyleA1 = $objActSheet->getStyle('A1');
    		$objStyleA1->getFont()->setColor(
    				new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED ));
    		$objStyleA1->getFont()->setBold(true);
    	
    		//设置单元格边框样式
    		$styleThinBlackBorderOutline = array(
    			'borders'=>array(
    				'outline'=>array(
    					'style'=>PHPExcel_Style_Border::BORDER_THICK,   //设置border样式
    					'color'=>array('argb'=>'#273039'),          //设置border颜色
    				),
    			),
    		);
    	
    		//设置单元格字体和边框
    		for ($i=65; $i<89; $i++) {
    			$temp = chr($i);
    			$style = $objActSheet->getStyle("{$temp}2");
    			$style->getFont()->setBold(true);
    			$style->getFont()->setName('微软雅黑');
    			$style->applyFromArray($styleThinBlackBorderOutline);
    		}
    	
    		//保护单元格
    		$objExcel->getSheet(0)->getProtection()->setSheet(true);
    		$objExcel->getSheet(0)->protectCells('A1', 'PHPExcel');
    	
    		$outputFileName = "template.xlsx";//生成的文件名
    			
    		header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    		header("Content-Disposition: attachment; filename=\"$outputFileName\"");
    		header('Cache-Control: max-age=0');
    		
    		//创建文件格式写入对象实例
    		$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
    		$objWriter->save('php://output'); //文件通过浏览器下载
    	}
    

      上面文件导入,路径按照要求自己修改。

    如果不曾相逢,心绪不会如此沉重
  • 相关阅读:
    使用自制事务进行异常信息的记录:Autonomous transactionslog
    backup methodsexp and imp
    一个 SQL 同时验证帐号是否存在、密码是否正确
    使用存储过程进行分页:page by Procedure
    推荐一款类似于editplus的文本编辑工具:note++
    myeclipse8.5反编译插件的安装使用jdgui插件
    [转]JavaMail的使用之邮件发送 详解
    Thinking in java中内部类的例子。
    [转]tomcat6.0下的log4j日志文件配置过程
    127.X.X.X開頭的網路都是特殊用途的嗎!?
  • 原文地址:https://www.cnblogs.com/age0420/p/3656694.html
Copyright © 2011-2022 走看看