【发布时间】:2019-05-03 05:41:35
【问题描述】:
我想从电子表格“dataSheet”(仅供查看与我共享)中获取数据以创建图表并输出到我自己的电子表格“表格”。
我使用 Apps Script 创建一个 embeddedChart 时遇到了这个错误:Cannot find method insertChart(EmbeddedChartBuilder)。
我已密切关注 Google 的指南 https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart,但无法解决错误。
我已经逐步调试并意识到错误发生在 .insertChart(最后一行代码)。
var chartBuilder = sheet.newChart();
chartBuilder.addRange(dataSheet.getRange('R'+earliestRowUsed + 'C1:R'+latestRowUsed + 'C1'))
.setChartType(Charts.ChartType.COLUMN)
.setPosition(5,5,0,0);
//collect data from dataSheet to add to Range.
for (indicator = 0; indicator < indicatorP.length; indicator++) {
indicatorIndex = indicatorList[0].indexOf(indicatorP[indicator]);
chartBuilder.addRange(dataSheet.getRange('R'+earliestRowUsed + 'C'+(dataCol + indicatorIndex) +':'+ 'R'+latestRowUsed + 'C'+(dataCol + indicatorIndex)));
}
chartBuilder.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_COLUMNS); //join columns to create a table
chartBuilder.build();
sheet.insertChart(chartBuilder); //error takes place here.
我愿意使用Charts 或EmbeddedCharts 为我的目的创建图表(即从共享的仅供查看的工作表中获取数据以创建图表并嵌入到我的工作表中)。
为了使用图表和表格,我找到了这个 Google 指南 https://developers.google.com/chart/interactive/docs/spreadsheets#embedding-achart-in-a-spreadsheet。
但是,该指南仅显示了创建图表的手动过程,而不是使用 Apps 脚本。如果有人知道如何,将感谢您的分享,因为我无法在网上找到任何东西。
谢谢。
【问题讨论】:
-
您没有保存
.build()的输出。试试sheet.insertChart(chartBuilder.build()); -
感谢@Diego。在发布之前我也尝试过你的方法,但这不是原因。我们的两种写作方法都可以用来制作图表。
-
你确定吗?我重新创建了您的代码并稍作修改(并非您的所有值指示值都已定义,因此我对一些范围进行了硬编码),并且我能够重现并使用
sheet.insertChart(chartBuilder.build());解决您的问题。 -
很抱歉你是对的。您的方法适合新图表,而我的方法是修改现有图表developers.google.com/apps-script/reference/spreadsheet/…。我认为我的问题是由于其他原因。但是,我没有进一步检查,而是进行了绕行。再次感谢。
标签: google-apps-script google-sheets google-visualization