使用命名范围的图表上的PHPExcel错误

问题描述:

使用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

我有这个问题为好。打开Excel的名称管理器并确保命名的范围不是#REF!或以其他方式损坏。

此外,请确保您没有引用另一张表中的命名单元格。这也将打破PHPexcel ..

希望帮助!

(请确保您使用的是最新版本)