非对象上的PHPExcel单元格样式格式错误
我试图格式化xls输出表中的单元格,但当我试图使用非对象上的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->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),对不起,我不理解您的问题:(当我注释掉列宽设置循环时,我没有得到错误,但是仍然没有应用样式。请注释该行并应用我的答案,而不是代码。)