我想动态地将范围添加到新的EmbeddedChartBuilder但我收到此错误:
“在dashOutput中 - 行: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()。
有什么想法吗?我错过了什么?你真的必须知道在图表创建时你要添加多少个范围?
谢谢, Eric B.
答案 0 :(得分:0)
问题是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());