PHPExcel更改foreach循环中每个单元格的背景颜色

时间:2017-09-29 09:18:56

标签: php phpexcel

每个事件都有自己的背景颜色存储在数据库中。

  

问题如何更改该行的每个单元格的背景,确保其背景颜色正确。

我看了How to set color for cell phpexcel into foreach loop,但不明白。

打印出来

A0 
B0 
C0 
D0 
A1 222222
B1 222222
C1 222222
D1 222222
A2 
B2 
C2 
D2 

功能

$excelrow = 2;

    foreach ($excelresults as $excelresult => $excelvalue) {


        foreach (range('A', $objPHPExcel->getActiveSheet()->getHighestDataColumn()) as $col) {

            echo $col . $excelresult .' '. $excelvalue['fill_color'] . '<br>';

            $cell = $col . $excelresult;

            $objPHPExcel
            ->getActiveSheet()
            ->getStyle($cell)
            ->getFill()
            ->getStartColor()
            ->getRGB($excelvalue['fill_color']);
        } 

        $objPHPExcel->getActiveSheet()->SetCellValue("A" . $excelrow, $excelvalue['event']);
        $objPHPExcel->getActiveSheet()->SetCellValue("B" . $excelrow, $excelvalue['event_title']);
        $objPHPExcel->getActiveSheet()->SetCellValue("C" . $excelrow, $excelvalue['event_date']);
        $objPHPExcel->getActiveSheet()->SetCellValue("D" . $excelrow, $excelvalue['event_start_time']);

        $excelrow++;
    }

1 个答案:

答案 0 :(得分:1)

您想要设置单元格的背景颜色(填充),因此您还必须设置填充样式

if (!empty($color)) {
    // Set the fill style
    objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)
        ->getFill()
        ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    // Set the colour for the fill
    $objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)
        ->getFill()
        ->getStartColor()->setRGB($color);
}

/Examples folder中有此示例,documentation

中对此进行了描述