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'); //文件通过浏览器下载 }
上面文件导入,路径按照要求自己修改。
如果不曾相逢,心绪不会如此沉重