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

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);

我正在寻找一种方法来提供列和行作为 (2,3) 而不是 ('A1:E1')

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

您不能在 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 设置背景填充样式

PHPExcel_Cell::stringFromColumnIndex(0);工作完美。

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

$cell 会给你 AT1 $range = 'A1:'.$cell; 这样你就可以很轻松的传入填充范围like.

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