2012-10-16 70 views
5

我在項目中使用PHPExcel並需要設計Excel工作表單元格的樣式。來自風格對象的PHPExcel特定單元格格式

我所做的是創建一個PHPExcel樣式對象是這樣的:

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

然後我用這種風格設定功能,填補了這樣的目標:

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

現在我正嘗試在單元格中使用此樣式對象。我試圖用applyFromArray功能是這樣的:

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

這是不這樣做的方式,我不認爲。對我而言,這是分配樣式最具可讀性和一致性的方式,但如果某個與PHPExcel流利程度更高的人可以指導我採用適當的方法,那麼我會非常感激!

P.S.請原諒格式化;這是我的第一篇文章:)

編輯:剛發現這個錯誤:"Invalid style array passed" 這是否意味着我錯誤地創建了樣式對象?

回答

12

從陣列應用是從字面上陣列應用,而不是從一個樣式對象

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

或者:

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

哦,我看到。我試圖有點太聰明:P 感謝您的快速回應:) – Askanison4

2

你也可以這樣做:

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