我在项目中使用PHPExcel,需要设置Excel工作表单元格的样式。
我所做的是创建一个像这样的PHPExcel样式对象:
$style['red_text'] = new PHPExcel_Style();
然后我使用此样式的set函数来填充对象:
$style['red_text']->getFont()
->applyFromArray(
array('name'=>'Arial')
)
现在我正在尝试在单元格中使用此样式对象。我尝试使用applyFromArray函数,如下所示:
$objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($x, $y)->applyFromArray( $style['red_text'] );
这不是我想不到的方法。对我而言,这是分配样式的最可读和最一致的方式,但如果能够更熟悉PHPExcel的人可以指导我采用正确的方法,那么我将非常感激!
P.S。请原谅格式;这是我的第一篇文章:)
编辑:刚刚发现错误:"Invalid style array passed"
这是否意味着我正在错误地创建样式对象?
答案 0 :(得分:12)
从数组中应用从字面上应用,而不是从样式对象
$style['red_text'] = array(
'font' => array(
'name' => 'Arial',
'color' => array(
'rgb' => 'FF0000'
)
),
);
$objPHPExcel->getActiveSheet()
->getStyleByColumnAndRow($x, $y)
->applyFromArray($style['red_text']);
或者:
$style['red_text'] = array(
'name' => 'Arial',
'color' => array(
'rgb' => 'FF0000'
)
);
$objPHPExcel->getActiveSheet()
->getStyleByColumnAndRow($x, $y)
->getFont()
->applyFromArray($style['red_text']);
答案 1 :(得分:2)
你也可以这样做:
$objPHPExcel->getActiveSheet()
->getStyle('A1:B30')
->getFont()
->applyFromArray(
array(
'name' => 'Arial',
'color' => array(
'rgb' => 'FF0000'
)
)
);