非对象

时间:2016-11-30 14:43:15

标签: php phpexcel cell-formatting

我正在尝试在我的xls输出表格中格式化单元格,但是当我尝试使用

$xls->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setRGB(PHPExcel_Style_Color::COLOR_WHITE);

getStyle()的任何其他方法我收到此错误:

  

(!)致命错误:在第755行的“...”/ Worksheet.php中的非对象上调用成员函数getNumberFormat()

getActiveSheet()setTitle()等其他getColumnDimension()方法正常运行。我正在使用Excel5编写器,但是当我尝试Excel2007时,我得到了同样的错误。任何人都知道可能是什么问题?提前谢谢。

当我注释掉列宽循环时,我没有得到错误,但样式应用仍然不起作用。列宽循环完美无需样式应用代码。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此方法为PHPExcel添加样式。

首先使用样式创建一个数组。 像这样的东西

    $color = array(
        'fill' => array(
            'type' => PHPExcel_Style_Fill::FILL_SOLID,
            'color' => array('rgb' => 'A5A5A5')
        ),
        'borders' => array(
            'allborders' => array(
                'style' => PHPExcel_Style_Border::BORDER_THIN
            )
        ),
        'alignment' => array(
            'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        )
    );

创建阵列后,您必须将样式应用于对象。 这样的事情。

    $xls->getActiveSheet()->getStyle('A1:A10')->applyFromArray($color);