我想要动态地向新的EmbeddedChartBuilder添加范围,但是我得到了这个错误:
在第605行中,错误: InternalError:找不到方法insertChart($Proxy843)。
以下代码不是动态的,但可以正常工作:
var tRange = sourceSheet.getRange(12, 1, 4, 2);
var tRange2 = sourceSheet.getRange(12,3,4,2);
var chart2 = destSheet.newChart()
.setPosition(5,6,5,5)
.setChartType(Charts.ChartType.LINE)
.addRange(tRange)
.addRange(tRange2)
.build();
destSheet.insertChart(chart2);但这给了我这个错误。
var tRange = sourceSheet.getRange(12, 1, 4, 2);
var tRange2 = sourceSheet.getRange(12,3,4,2);
var chart2 = destSheet.newChart()
.setPosition(5,6,5,5)
.setChartType(Charts.ChartType.LINE);
chart2.addRange(tRange);
chart2.addRange(tRange2);
chart2.build();
destSheet.insertChart(chart2);第二个示例不是动态的,但如果它可以工作,我将在循环中重复使用.addRange()。
有什么想法吗?我遗漏了什么?在创建图表时,您真的需要知道要添加多少范围吗?
谢谢你埃里克·B。
发布于 2012-09-27 02:06:38
问题在于,Sheet.newChart方法创建EmbeddedChartBuilder类的实例,EmbeddedChartBuilder.build方法创建EmbeddedChart类的实例,而Sheet.insertChart方法需要EmbeddedChart实例。在第一个代码中,chart2变量是EmbeddedChart类的实例,在第二个例子中,chart2变量是EmbeddedChartBuilder类的实例。这就是错误发生的原因。按如下所示更改代码。应该能行得通。
var tRange = sourceSheet.getRange(12, 1, 4, 2);
var tRange2 = sourceSheet.getRange(12,3,4,2);
var chart2 = destSheet.newChart()
.setPosition(5,6,5,5)
.setChartType(Charts.ChartType.LINE);
chart2.addRange(tRange);
chart2.addRange(tRange2);
destSheet.insertChart(chart2.build());https://stackoverflow.com/questions/12607367
复制相似问题