PHPExcel生成Excel模版

  1. /**
  2.      * 下载excel模版的方法
  3.      */
  4.     public function downloadExcelTemplate() {
  5.         require_once ‘extensions/PHPExcel/PHPExcel.php’;
  6.         require_once ‘extensions/PHPExcel/PHPExcel/Writer/Excel2007.php’;
  7.         require_once ‘extensions/PHPExcel/PHPExcel/IOFactory.php’;
  8.      
  9.         // 创建一个处理对象实例
  10.         $objExcel = new PHPExcel();
  11.      
  12.         //设置文档基本属性
  13.         $objProps = $objExcel->getProperties();
  14.         $objProps->setCreator("Zeal Li");
  15.         $objProps->setLastModifiedBy("Zeal Li");
  16.         $objProps->setTitle("Office XLS Test Document");
  17.         $objProps->setSubject("Office XLS Test Document, Demo");
  18.         $objProps->setDescription("kol document, generated by PHPExcel.");
  19.         $objProps->setKeywords("office excel PHPExcel");
  20.         $objProps->setCategory("Test");
  21.      
  22.         //设置当前的sheet索引,用于后续的内容操作。
  23.         //一般只有在使用多个sheet的时候才需要显示调用。
  24.         //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0
  25.         $objExcel->setActiveSheetIndex(0);
  26.      
  27.         $objActSheet = $objExcel->getActiveSheet();
  28.      
  29.         //设置当前活动sheet的名称
  30.         $objActSheet->setTitle(‘kol用户表’);
  31.      
  32.         //合并单元格
  33.         $objActSheet->mergeCells(‘A1:P1’);
  34.          
  35.         //设置单元格内容
  36.      
  37.         $objActSheet->setCellValue(‘A1’, ‘填写要求:
  38.                 1:请填完整每个格子的内容,相同内容请复制填写完整。
  39.                 2:没有的数据可以空着不填写。
  40.                 3:价格的单位默认为“元/条”,广告频次单位为“次/天”,注册日期,格式为日期格式;
  41.                 4:联系方式必须严格要求是QQ:XXXXXXXX 或 Email:XXXXXXXXXX
  42.                       或 Phone:XXXXXXXXXXX 之间用“/”分割,之间空格不限制
  43.                 5:字段的格式详细要求如下:字段 "一级分类" "二级类型" "认证类型" "平台分类"’); //字符串内容
  44.         $objActSheet->setCellValue(‘A2’, ‘一级分类’);
  45.         $objActSheet->setCellValue(‘B2’, ‘二级分类’);
  46.         $objActSheet->setCellValue(‘C2’, ‘账号名称’);
  47.         $objActSheet->setCellValue(‘D2’, ‘账号的地址’);
  48.         $objActSheet->setCellValue(‘E2’, ‘粉丝数’);
  49.         $objActSheet->setCellValue(‘F2’, ‘粉丝级别’);
  50.         $objActSheet->setCellValue(‘G2’, ‘认证类型’);
  51.         $objActSheet->setCellValue(‘H2’, ‘认证信息’);
  52.         $objActSheet->setCellValue(‘I2’, ‘是否精品’);
  53.         $objActSheet->setCellValue(‘J2’, ‘平台分类’);
  54.         $objActSheet->setCellValue(‘K2’, ‘注册日期 ‘);
  55.         $objActSheet->setCellValue(‘L2’, ‘最低价格’);
  56.         $objActSheet->setCellValue(‘M2’, ‘最高价格’);
  57.         $objActSheet->setCellValue(‘N2’, ‘硬广报价’);
  58.         $objActSheet->setCellValue(‘O2’, ‘软广报价’);
  59.         $objActSheet->setCellValue(‘P2’, ‘微任务直发原价’);
  60.         $objActSheet->setCellValue(‘Q2’, ‘微任务转发原价’);
  61.         $objActSheet->setCellValue(‘R2’, ‘大客户微任务价格’);
  62.         $objActSheet->setCellValue(‘S2’, ‘税点(%)’);
  63.         $objActSheet->setCellValue(‘T2’, ‘广告频次’);
  64.         $objActSheet->setCellValue(‘U2’, ‘真实姓名’);
  65.         $objActSheet->setCellValue(‘V2’, ‘联系方式’);
  66.         $objActSheet->setCellValue(‘W2’, ‘个性信息 ‘);
  67.         $objActSheet->setCellValue(‘X2’, ‘备注’);
  68.          
  69.         //A1自动换行
  70.         $objActSheet ->getStyle(‘A1’)->getAlignment()->setWrapText(true);
  71.      
  72.         // 设置行高
  73.         $objActSheet->getRowDimension(‘1’)->setRowHeight(100);
  74.          
  75.         //设置默认宽度以及对齐方式
  76.         $aligment = $objActSheet->getDefaultStyle()->getAlignment();
  77.         $objActSheet->getDefaultColumnDimension()->setWidth(12);
  78.         $aligment->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  79.         $aligment->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  80.         $objActSheet->getDefaultRowDimension()->setRowHeight(25);//默认高度
  81.      
  82.         //设置特定单元格宽度
  83.         $objActSheet->getColumnDimension(‘D’)->setWidth(17);//url
  84.         $objActSheet->getColumnDimension(‘P’)->setWidth(20);//微任务直发原价
  85.         $objActSheet->getColumnDimension(‘Q’)->setWidth(20);//微任务转发原价
  86.         $objActSheet->getColumnDimension(‘R’)->setWidth(20);//大客户微任务价格
  87.         $objActSheet->getColumnDimension(‘V’)->setWidth(20);//联系方式
  88.      
  89.         //设置宽度
  90.         $objStyleA1 = $objActSheet->getStyle(‘A1’);
  91.         $objStyleA1->getFont()->setColor(
  92.                 new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED ));
  93.         $objStyleA1->getFont()->setBold(true);
  94.      
  95.         //设置单元格边框样式
  96.         $styleThinBlackBorderOutline = array(
  97.             ‘borders’=>array(
  98.                 ‘outline’=>array(
  99.                     ‘style’=>PHPExcel_Style_Border::BORDER_THICK,   //设置border样式
  100.                     ‘color’=>array(‘argb’=>’#273039’),          //设置border颜色
  101.                 ),
  102.             ),
  103.         );
  104.      
  105.         //设置单元格字体和边框
  106.         for ($i=65; $i<89; $i++) {
  107.             $temp = chr($i);
  108.             $style = $objActSheet->getStyle("{$temp}2");
  109.             $style->getFont()->setBold(true);
  110.             $style->getFont()->setName(‘微软雅黑’);
  111.             $style->applyFromArray($styleThinBlackBorderOutline);
  112.         }
  113.      
  114.         //保护单元格
  115.         $objExcel->getSheet(0)->getProtection()->setSheet(true);
  116.         $objExcel->getSheet(0)->protectCells(‘A1’, ‘PHPExcel’);
  117.      
  118.         $outputFileName = "template.xlsx";//生成的文件名
  119.             
  120.         header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’);
  121.         header("Content-Disposition: attachment; filename="$outputFileName"");
  122.         header(‘Cache-Control: max-age=0’);
  123.          
  124.         //创建文件格式写入对象实例
  125.         $objWriter = PHPExcel_IOFactory::createWriter($objExcel, ‘Excel2007’);
  126.         $objWriter->save(‘php://output’); //文件通过浏览器下载
  127.     }

复制代码

发表回复