age0420

  近来公司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\'); //文件通过浏览器下载
	}

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

分类:

技术点:

相关文章: