2011-07-21 25 views

Odpowiedz

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

Wydaje się, że to błąd z applyFromArray teraz, że nie będzie akceptować kolor, ale ten pracował dla mnie:

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

Chociaż jest to bardziej eleganckie rozwiązanie (jak wolę sposób OOP), to nie zadziałało dla mnie:/ Używane @ user198003 dostarczone rozwiązanie – 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

Twoje funkcje są w porządku, ale używasz globalnego i to jest prawdziwy błąd ... Ty powinien korzystać z funkcji PHP5. Zamiast tego możesz wypróbować funkcję lambda, taką jak https://eval.in/39136 :) – Cito

+0

Dobra robota, dzięki temu naprawdę działa. –

8

To zawsze działa!

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

+2

W niektórych wersjach php nie można przerwać linii w klasie atrybutów. Stara wersja. –

+2

** WAŻNE! Niż $ objPHPExcel jak $ sheet jest definiowany z klasy obiektu PHPExcel. Musisz użyć tego, jak utworzono instancję (przy nowej definicji PHPExcel()). ** –

26

Kod ten powinien pracować dla Ciebie:

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

Ale jeśli przejmuj się korzystania z tego w kółko, polecam korzystania applyFromArray.

4
$objPHPExcel 
->getActiveSheet() 
->getStyle('A1') 
->getFill() 
->setFillType(PHPExcel_Style_Fill::FILL_SOLID) 
->getStartColor() 
->setRGB('colorcode'); //i.e,colorcode=D3D3D3 
Powiązane problemy