来自样式对象的PHPExcel特定单元格格式

时间:2012-10-16 15:50:26

标签: php phpexcel

我在项目中使用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" 这是否意味着我正在错误地创建样式对象?

2 个答案:

答案 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'
            )
        )
    );