非对象上的PHPExcel单元格样式格式错误

非对象上的PHPExcel单元格样式格式错误,php,phpexcel,cell-formatting,Php,Phpexcel,Cell Formatting,我试图格式化xls输出表中的单元格,但当我试图使用 $xls->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setRGB(PHPExcel_Style_Color::COLOR_WHITE); 或者使用getStyle()的任何其他方法,我收到以下错误: (!)致命错误:对第755行“…”/sheet.php中的非对象调用成员函数getNumberFormat() 其他getActiveShee

我试图格式化xls输出表中的单元格,但当我试图使用

$xls->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setRGB(PHPExcel_Style_Color::COLOR_WHITE);
或者使用
getStyle()
的任何其他方法,我收到以下错误:

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

其他
getActiveSheet()
方法,如
setTitle()
getColumnDimension()
工作正常。我使用的是Excel5 writer,但当我尝试Excel2007时,我遇到了相同的错误。有人知道可能是什么问题吗?提前谢谢


当我注释掉列宽循环时,我没有得到错误,但是应用的样式仍然不起作用。列宽循环在没有样式应用代码的情况下可以完美工作。

您可以尝试此方法将样式添加到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);

您可以尝试使用此方法将样式添加到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);

您确定样式会给您带来错误吗?警告与getNumberFormat()有关。尝试注释这行代码,是否再次出现相同的错误?是的,我确定,注释掉这行代码后效果良好。您确定样式会给您带来错误吗?警告与getNumberFormat()有关。尝试注释这行代码,是否再次出现相同的错误?是的,我确定,注释掉这行代码后效果很好。我尝试了所有(我认为所有,arraystyle也是)样式应用方法,在任何情况下,
getStyle()
都会导致相同的错误。$objReader不是对象。从何处引用此代码?$objReader是从CSV加载数据的对象(PHPExcel_Reader_CSV),很抱歉,但我不理解您的问题:(当我注释掉列宽设置循环时,我没有得到错误,但仍然没有应用样式。注释该行并应用我的答案,而不是您的代码我尝试了所有方法。)(我认为所有的,arraystyle也是)样式应用方法,在任何情况下,
getStyle()
都会导致相同的错误。$objReader不是一个对象。从何处引用此代码?$objReader是从CSV加载数据的对象(PHPExcel\u Reader\u CSV),对不起,我不理解您的问题:(当我注释掉列宽设置循环时,我没有得到错误,但是仍然没有应用样式。请注释该行并应用我的答案,而不是代码。)