2014-04-27 81 views
0

我有以下代碼,它正在CodeIgniter中運行。PHPExcel讀取Excel 2010模板文件與圖表

模板文件aol.xlsx包含Excel 2010中的圖表。當文件保存到aoltest.xlsx時,圖表已被Excel刪除,但所有其他數據完好無損。在打開的Excel aoltest.xlsx文件給出了錯誤

Removed Part: /xl/drawings/drawing1.xml part. (Drawing shape)

我在Windows上運行WAMP 8

這裏是我的代碼。

 $this->load->library('excel'); 
     $fileType = 'Excel2007'; 
     $fileName = 'D:/excelfiles/aol.xlsx'; 
     $fileName2 = 'D:/excelfiles/aoltest.xlsx'; 

     // Read the file 
     $objReader = PHPExcel_IOFactory::createReader($fileType); 
     $objReader->setIncludeCharts(TRUE); 
     $objPHPExcel = $objReader->load($fileName); 


     // Write the file 
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType); 
     $objWriter->setIncludeCharts(TRUE); 
     $objWriter->save($fileName2); 

這是我的數據表

201401 201402 201403 201404 201405 201406 201407 
a 74  42  12  98  64  37  74 
b 16  19  100  28  85  40  1 
C 66  13  9  41  92  90  38 
D 44  35  42  38  81  38  43 

****更新*****

通過改變上面列標籤字符串,而非數值一切工作就像魅力。 YYYYWW表示的原因是很重要的,所以修復整數作爲列標題將非常值得讚賞或記錄,你不應該使用整數(可能它已經記錄,我只是沒有看到它)。


我已經看到了很多其他人在許多論壇和不是一個單一實例抱怨這個有,我發現任何人誰報告說,這個問題是固定的。任何人都可以確認他們得到了這個工作,在這種情況下你使用的是什麼平臺/操作系統?

+0

什麼版本的PHPExcel?什麼類型的圖表?是否有任何錯誤被記錄?你能提供一個有效的例子來證明這個問題嗎?如果我不知道問題,我怎麼能期望解決它?如果我沒有測試問題的方法,我該如何解決? –

+0

我從github下載了zip文件。我可以給出的唯一示例是上面的代碼,如文檔所述,它打開一個包含圖表的工作xlsx文件,並使用損壞的圖表重新保存它。不知道除屏幕錄像外我還能提供什麼。 PHPExcel不會產生任何錯誤。您是否可以確認是否可以打開包含圖表的Excel2010文檔,然後重新保存圖表?如果是的話,你可以提供操作細節,以便我可以嘗試測試。 – PrestonDocks

+0

我可以確認有大量的示例文件包含分佈的/ Examples文件夾中的圖表,這些文件完全適用於加載和保存。你應該能夠自己運行這些代碼來查看。 –

回答

0

該問題是由於PHPExcel不支持Integer類型的圖表列標籤而引起的。在我的Excel模板中將列標籤更改爲字符串後,一切正常。

+0

謝謝,你能告訴我在哪裏設置圖表列標籤爲字符串嗎?是「圖表欄標籤」是指圖表的x標籤? – yellow