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

PHPExcel Change Background color for each cell in foreach loop

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

Question How can I change the background of each cell for that row making sure that has correct background color.

我看过这里但没看懂

它打印出

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++;
    }

您要为单元格设置背景颜色(填充),所以您还必须设置填充样式

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 and it is described in the documentation

中有这方面的演示