2011-07-21 308 views

回答

1
$objPHPExcel 
    ->getActiveSheet() 
    ->getStyle('A1') 
    ->getFill() 
    ->getStartColor() 
    ->getRGB(); 
8

好像有一個與applyFromArray的錯誤,現在不會接受的顏色,但這個工作對我來說:

$objPHPExcel 
    ->getActiveSheet() 
    ->getStyle('A1') 
    ->getFill() 
    ->getStartColor() 
    ->setRGB('FF0000'); 
+1

雖然這是更優雅的解決方案(我更喜歡OOP方式),但它並沒有爲我工作:/ 使用@ user198003提供的解決方案 – aur1mas

67
function cellColor($cells,$color){ 
    global $objPHPExcel; 

    $objPHPExcel->getActiveSheet()->getStyle($cells)->getFill()->applyFromArray(array(
     'type' => PHPExcel_Style_Fill::FILL_SOLID, 
     'startcolor' => array(
      'rgb' => $color 
     ) 
    )); 
} 

cellColor('B5', 'F28A8C'); 
cellColor('G5', 'F28A8C'); 
cellColor('A7:I7', 'F28A8C'); 
cellColor('A17:I17', 'F28A8C'); 
cellColor('A30:Z30', 'F28A8C'); 

enter image description here

+6

您的功能沒關係,但是您使用的是全局的,這是一個真正的錯誤...您應該利用PHP5的功能。相反,你可以嘗試一個lambda函數,比如https://eval.in/39136 :) – Cito

+0

做得很好,謝謝它真的有用。 –

8

這一直在運行!

$sheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setRGB('FF0000');

+2

在某些PHP版本中,不能在屬性類中斷行。舊版。 –

+2

**重要! $ objPHPExcel比如$ sheet是一個來自對象類PHPExcel的定義。你需要像你實例化一樣使用(在新的PHPExcel()定義)。** –

26

此代碼應爲你工作:

$PHPExcel->getActiveSheet() 
     ->getStyle('A1') 
     ->getFill() 
     ->setFillType(PHPExcel_Style_Fill::FILL_SOLID) 
     ->getStartColor() 
     ->setRGB('FF0000') 

但是,如果你懶得用這一遍又一遍,我建議使用applyFromArray

4
$objPHPExcel 
->getActiveSheet() 
->getStyle('A1') 
->getFill() 
->setFillType(PHPExcel_Style_Fill::FILL_SOLID) 
->getStartColor() 
->setRGB('colorcode'); //i.e,colorcode=D3D3D3 
相關問題