使用列和行索引设置单元格背景


Set cell background using column and row index

我使用以下方法在phpexcel中设置单元格值setCellValueByColumnAndRow()

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col,$xlsRow,$plan);

现在我的要求是为此设置背景颜色。

我无法使用下面的方法,因为我与行和列号对齐。

 $objPHPExcel->getActiveSheet()->getStyle("A1")->getFill()
    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
    ->getStartColor()->setRGB($color);

我正在寻找一种方法来提供 cols 和行,因为 (2,3) 不像 ('A1:E1')

请建议使用列号和行号设置背景颜色的替代方法。

PHPExcel_Cell::stringFromColumnIndex(0); 工作得很好。

$column = PHPExcel_Cell::stringFromColumnIndex(45);
$row = 1;
$cell = $column.$row;

$cell会给你AT1$range = 'A1:'.$cell;因此,您可以轻松地进入填充范围。

$objPHPExcel->getActiveSheet()->getStyle($range)->getFill()->applyFromArray(array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array(
             'rgb' => 'FFFF00' //Yellow
        )
    ));

不能在 PHPExcel 中设置行的样式,只能设置一个单元格或单元格区域的样式

$objPHPExcel->getActiveSheet()
    ->getStyle('A1:E1')
    ->getFill()
    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
    ->getStartColor()
    ->setARGB('FF808080');

$objPHPExcel->getActiveSheet()
    ->getStyle('A1:E1')
    ->applyFromArray(
        array(
            'fill' => array(
                'type' => PHPExcel_Style_Fill::FILL_SOLID,
                'color' => array('rgb' => 'E05CC2')
            )
        )
    );

将单元格 A1 的背景填充样式设置为 E1