2012-10-16 11 views
5

Używam PHPExcel w projekcie i trzeba zaznaczyć komórki arkuszy programu Excel.Formatowanie komórek PHPExcel specyficzne z obiektu stylu

Co robiłem jest stworzenie PHPExcel styl obiektu takiego:

$style['red_text'] = new PHPExcel_Style(); 

I wtedy używanie odbiornika funkcji w tym stylu do wypełnienia obiektu takiego:

$style['red_text']->getFont() 
     ->applyFromArray(
       array('name'=>'Arial') 
     ) 

teraz Próbuję użyć tego obiektu stylu w komórce. Próbowałem użyć funkcji applyFromArray tak:

$objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($x, $y)->applyFromArray($style['red_text']);

To nie jest sposób na to nie sądzę. Dla mnie jest to najbardziej czytelny i spójny sposób przypisywania stylów, ale jeśli ktoś, kto jest bardziej płynny w PHPExcel, może skierować mnie na właściwą metodę, byłbym bardzo zobowiązany!

P.S. Przepraszam za formatowanie; to jest mój pierwszy post :)

EDYCJA: właśnie znalazłem błąd w tym: "Invalid style array passed" Czy to oznacza, że ​​jestem nieprawidłowo tworzony obiekt stylu?

Odpowiedz

12

Stosowanie z tablicy jest dosłownie stosowania z tablicy, nie z obiektu w stylu

$style['red_text'] = array(
    'font' => array(
     'name' => 'Arial', 
     'color' => array(
      'rgb' => 'FF0000' 
     ) 
    ), 
); 
$objPHPExcel->getActiveSheet() 
    ->getStyleByColumnAndRow($x, $y) 
    ->applyFromArray($style['red_text']); 

lub alternatywnie:

$style['red_text'] = array(
    'name' => 'Arial', 
    'color' => array(
     'rgb' => 'FF0000' 
    ) 
); 
$objPHPExcel->getActiveSheet() 
    ->getStyleByColumnAndRow($x, $y) 
    ->getFont() 
    ->applyFromArray($style['red_text']); 
+0

Oh widzieć. Próbowałem być trochę zbyt sprytny: P Dzięki za szybką reakcję :) – Askanison4

2

Można też to zrobić:

$objPHPExcel->getActiveSheet() 
    ->getStyle('A1:B30') 
    ->getFont() 
    ->applyFromArray(
     array(
      'name' => 'Arial', 
      'color' => array(
       'rgb' => 'FF0000' 
      ) 
     ) 
    );