1

我想将范围动态添加到新的 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() 。

有任何想法吗?我错过了什么?您真的必须知道在创建图表时要添加多少范围吗?

谢谢,埃里克 B。

4

1 回答 1

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());
于 2012-09-26T18:06:37.853 回答