2017-09-29 1 views
0

Chaque événement possède sa propre couleur d'arrière-plan stockée dans la base de données. Question Comment puis-je modifier l'arrière-plan de chaque cellule de cette ligne en vérifiant que la couleur d'arrière-plan est correcte. J'ai regardé ici How to set color for cell phpexcel into foreach loop mais je ne comprends pas.PHPExcel Change Couleur d'arrière-plan de chaque cellule de la boucle foreach

Il imprime

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

Fonction

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

Répondre

1

Vous voulez définir la couleur d'arrière-plan (remplissage) pour la cellule, alors vous devez aussi définir un style de remplissage

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

Il y a une démonstration de cela dans le /Examples folder et il est décrit dans le documentation

+0

Cela fonctionne mais pouvez-vous également changer/définir la couleur de police aussi – user4419336

+0

Oui vous pouvez .... il y a beaucoup de [documentation] (https://github.com/PHPOffice/PHPExcel/wiki/User-Documentation -Overview-and-Quickstart-Guide) et [examples] (https://github.com/PHPOffice/PHPExcel/tree/1.8/Examples) disponibles pour définir tous les éléments de style, et presque tout ce que vous pouvez faire avec la bibliothèque –