2017-09-29 49 views
0

各イベントには独自の背景色がデータベースに格納されています。PHPExcel foreachループの各セルの背景色を変更します

質問正しい行の背景色を持つように、行の各セルの背景を変更するにはどうすればよいですか。

私はここで見ていましたが、それはわかりません。

それは機能

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にこれのデモがあり、に記載されています

+0

これでも動作しますが、フォントの色も変更/設定することもできます。 – user4419336

+0

はい、できます。[ドキュメント](https://github.com/PHPOffice/PHPExcel/wiki/User-Documentation)がたくさんあります。 - 概要とクイックスタート - ガイド)と[examples](https://github.com/PHPOffice/PHPExcel/tree/1.8/Examples)を使用して、スタイルのすべての要素を設定することができます。また、ライブラリでできることはほとんどすべて –

関連する問題