我想插入一个新行,但是目前它默认复制上一行的样式。所以,我需要重置这个新行的样式。我正在尝试此代码,但无法正常工作:
这是错误:
Fatal error: Call to undefined method PHPExcel_Worksheet::applyFromArray() in /var/www/xxxx/demo/xls.php
由于新行的数量是可变的,我无法指定固定范围来选择和添加样式。
function styleResetBackground(){
$styleBackground = array(
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('rgb' => 'FFFFFF')
));
return $styleBackground;
}
$objPHPExcel->getActiveSheet()->insertNewRowBefore($lastRow+1,1)->applyFromArray(styleResetBackground());
问题是:->applyFromArray(styleResetBackground()
,因为没有此代码,错误消失,但我需要在插入后重置样式。
答案 0 :(得分:1)
insertNewRowBefore()
方法返回一个Worksheet对象。但是,applyFromArray()
不是工作表方法,而是Style方法...您需要为刚刚添加的行中的单元格返回样式方法,然后调用applyFromArray()
在那... ....像:
$objPHPExcel->getActiveSheet()
->insertNewRowBefore($lastRow+1,1)
->getStyle('A' . $lastRow . ':Z' . $lastRow)
->applyFromArray(styleResetBackground());