PHPExcel探索之旅---阶段二 设置表格样式

1、设置表格的默认样式为水平居中、垂直居中

  getDefaultStyle()函数用来设置默认样式 由活动sheet对象来调用,setVertical()函数和setHorizontal()函数分别用来设置垂直和水平居中

$objSheet -> getDefaultStyle() -> getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER) -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

 

2、设置字体样式和大小

  设置默认字体样式和大小时使用getDefaultStyle()函数调用getFont()函数

  设置个别单元格字体样式和大小时,样式为:getStyle()->getFont() -> setSize(20) -> setBold(true);getStyle()函数中为设置范围,setBold函数设置是否加粗

$objSheet -> getDefaultStyle() -> getFont() -> setName("微软雅黑") -> setSize("14");//设置默认字体为微软雅黑,大小为14
    $objSheet -> getStyle("A2:Z2") -> getFont() -> setSize(20) -> setBold(true);//设置年级所在行的字体大小为20,加粗
    $objSheet -> getStyle("A3:Z3") -> getFont() -> setSize(16) -> setBold(true);//设置班级所在行的字体大小为16,加粗

 

3、合并单元格

  使用mergeCells()函数,参数为单元格范围:单元格1位置:单元格2位置

$objSheet -> mergeCells($nameIndex."3:".$scoreIndex."3");//合并每个班级的单元格

 

4、填充背景颜色

  getStyle(单元格范围)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB(rgb颜色编码');

$objSheet->getStyle($nameIndex."3:".$scoreIndex."3")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('52e351');//填充班级所在列的背景颜色

 

5、设置自动换行

  在setCellValue()函数前面加上 getStyle($nameIndex) -> getAlignment()->setWrapText(true);激活自动换行样式

  然后在setCellValue()赋值函数中在想要换行的地方加上“\n”

$objSheet -> getStyle($nameIndex) -> getAlignment()->setWrapText(true);//设置列自动换行
            $objSheet -> setCellValue($nameIndex."4","姓名\n换行") -> setCellValue($scoreIndex."4","分数");

 

6、设置边框的样式

  定义一个函数 getBorderStyle来获取有关的边框样式

  调用getStyle(单元格范围) -> applyFromArray($gradeBorderStyle);$gradeBorderStyle就是函数 getBorderStyle返回的包含边框样式的数组

    /**
     * 获取不同边框的格式
     * */
    function getBorderStyle($color){
        $styleArray = array(
                'borders' => array(
                        'outline' => array(
                                'style' => PHPExcel_Style_Border::BORDER_THICK,
                                'color' => array('rgb' => $color),
                        ),
                ),
        );
        return $styleArray;
        
    }
$gradeBorderStyle = getBorderStyle("e3df51");//获取年级所在行的边框样式
        $objSheet -> getStyle($gradeIndex."2:".$endGradeIndex."2") -> applyFromArray($gradeBorderStyle);//设置年级列边框

 

7、将单元格格式设置为文本格式

  将单元格赋值函数setCellValue换成setCellValueExplicit函数并加入第三个函数参数"PHPExcel_Cell_DataType::TYPE_STRING"

  应用于单元格内容为超过11位的数字时

//将单元格格式设置为文本格式的事例
 $objSheet -> setCellValue($nameIndex.$j,$val['username']) -> setCellValueExplicit($scoreIndex.$j,$val['score']."1561540661", PHPExcel_Cell_DataType::TYPE_STRING); */

 

posted @ 2016-01-19 14:04  banshaohuan  阅读(597)  评论(0编辑  收藏  举报