2016-11-30 79 views
1

我想在我的XLS輸出表來格式化細胞,但是當我試圖用PHPExcel單元格樣式的格式錯誤

$xls->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setRGB(PHPExcel_Style_Color::COLOR_WHITE); 

或任何其他方法與getStyle()我得到這個錯誤:

(!) Fatal error: Call to a member function getNumberFormat() on a non-object in "..."/Worksheet.php in line 755

其他getActiveSheet()方法如setTitle()getColumnDimension()工作正常。我使用Excel5編寫器,但是當我嘗試使用Excel2007時,我得到了同樣的錯誤。任何人都知道可能是什麼問題?提前致謝。

編輯:

整個代碼:http://paste.ofcode.org/SWNcyunnCkenpGhUtrujdL

當我註釋掉列寬環路我不明白的錯誤,但應用仍是風格不工作。列寬度循環完美無缺地應用代碼。

+0

你確定樣式會給你錯誤嗎?警告是關於getNumberFormat()。嘗試評論這段代碼,你是否再次遇到同樣的錯誤? –

+0

是的,我敢肯定,當它被註釋掉時它工作正常。 –

回答

0

您可以嘗試使用這種方法爲PHPExcel添加樣式。

首先用樣式創建一個數組。 像這樣

$color = array(
     'fill' => array(
      'type' => PHPExcel_Style_Fill::FILL_SOLID, 
      'color' => array('rgb' => 'A5A5A5') 
     ), 
     'borders' => array(
      'allborders' => array(
       'style' => PHPExcel_Style_Border::BORDER_THIN 
      ) 
     ), 
     'alignment' => array(
      'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 
     ) 
    ); 

創建陣列後,您必須將樣式應用到您的對象。 就是這樣。

$xls->getActiveSheet()->getStyle('A1:A10')->applyFromArray($color); 
+0

我嘗試了所有(我認爲所有,arraystyle也)應用方法,在每種情況下'getStyle()'導致相同的錯誤。 –

+0

http://paste.ofcode.org/SWNcyunnCkenpGhUtrujdL –

+0

$ objReader不是一個對象。從哪裏引用此代碼? –