2013-01-21 19 views
1

使用PHPExcel 1.7.8我有一個2007 xlsx Excel文件,它包含Sheet1上的餅圖和Sheet2中的兩列簡單數據。使用命名範圍的圖表上的PHPExcel錯誤

工作簿具有爲Sheet2中的兩個列定義的命名範圍,一個用於標籤,另一個用於數據。 Sheet1中的餅圖然後引用這些命名範圍,這意味着它將在數據從Sheet2中添加/刪除時自動更新。

使用PHPExcel我可以讀取表單,編輯Sheet2中的數據並將其寫回Excel 2007。但是,使用上述設置,圖表使用命名區域時,PHPExcel在讀取Excel時拋出錯誤Invalid cell coordinate CHARTDATA,進一步看來,PHPExcel並沒有讀取任何預先存在的命名範圍,但丟失了它們,儘管這些可以通過代碼再次定義 - 錯誤仍然存​​在。

至關重要的是,在使用PHPExcel加載其中包含圖形的spreadhseet後,編輯基礎數據 - 添加或刪除行,然後將其寫回到Excel中,並相應更新圖表。

非常感謝您的幫助!

完全錯誤如下:

Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Invalid cell coordinate CHARTDATA' in /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Cell.php:539 
Stack trace: 
#0 /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Cell.php(674): PHPExcel_Cell::coordinateFromString('CHARTDATA') 
#1 /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Cell.php(693): PHPExcel_Cell::rangeBoundaries('ChartData') 
#2 /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Chart/DataSeriesValues.php(298): PHPExcel_Cell::rangeDimension('ChartData') 
#3 /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Chart/DataSeries.php(350): PHPExcel_Chart_DataSeriesValues->refresh(Object(PHPExcel_Worksheet), false) 
#4 /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Chart/PlotArea.php(121): PHPExcel_Chart_DataSeries->refresh(Object(PHPExcel_Worksheet)) 
#5 /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Chart.php(499): PHPExcel_Chart_PlotArea->refresh(Object(PHPExcel_Worksheet)) 
#6 /home/conten in /home/content/34/6122134/html/core.excel/Classes/PHPExcel/Cell.php on line 539 
+0

是否可以使用常規範圍而不是命名範圍?我沒有在PHP中工作。該錯誤試圖將字符串地址轉換爲範圍,我認爲它不支持命名範圍。 – shahkalpesh

+0

在Excel 2007中,爲圖表結果設置常規範圍,結果顯示不具有數據的行的標籤(例如A:A) – SW4

+0

在這種情況下,不能將範圍限制爲具有數據而不是A的行:A? – shahkalpesh

回答

0

我有這個問題爲好。打開Excel的名稱管理器並確保命名的範圍不是#REF!或以其他方式損壞。

此外,請確保您沒有引用另一張表中的命名單元格。這也將打破PHPexcel ..

希望幫助!

(請確保您使用的是最新版本)