2017-09-29 43 views
0

每个事件都有自己的背景颜色存储在数据库中。PHPExcel更改每个单元格在foreach循环中的背景颜色

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

我在这里看看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

你想设置单元格的背景颜色(填充),所以你也必须设置填充样式

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

+0

这样的工作,但你也可以更改/设置字体颜色也 – user4419336

+0

是的,你可以....有很多[文档](https://github.com/PHPOffice/PHPExcel/wiki/User-Documentation -Overview-and-Quickstart-Guide)和[示例](https://github.com/PHPOffice/PHPExcel/tree/1.8/Examples)可用于设置样式的所有元素,以及几乎所有可以使用库的内容 –

相关问题