在 google sheet 中插入图表时出错

Error inserting chart in google sheet

我有以下代码可以创建条形图

var chart = Charts.newBarChart()
.setDataTable(dataTable)
.setTitle("Rain per month");

sheet.insertChart(chart.build());

不幸的是,我收到一条错误消息 "Cannot find method insertChart(Chart)"。

看来 sheet.insertChart 函数必须采用 embeddedChart。

如何将我的图表变成嵌入图表以便 insertChart 函数使用它?

问候 克鲁兹

您使用的方法是将图表添加到 UiApp。 要将图表添加到 google sheet,您可以使用以下语法:

 var chart = sheet.newChart()
 .setChartType(Charts.ChartType.BAR)
 .addRange(sheet.getRange("A1:B4"))
 .setPosition(5, 5, 0, 0)
 .setOption("title", "Dynamic Chart")
 .build();
 sheet.insertChart(chart);

此代码取自 Google 应用程序脚本文档中的 here

另外,DataTable class is used to create charts when adding charts to html or the UiApp。如果您想将图表添加到价差sheet,就好像用户单击了插入 > 图表,您将不得不使用getRange 来绘制数据。如果您从多个来源提取数据,我建议您合并数据并将其添加到 spreadsheet 中的某处,使用 sheet.getRange().setValue().

如果您想从单独的 google 传播sheet 中提取数据,那么您可以这样做:

//SpreadsheetApp.openByUrl.openById(inset appropriate id here) would work as well
var externalSheets = SpreadsheetApp.openByUrl(insert appropriate url here).getSheets();
  var chart = sheet.newChart()
 .setChartType(Charts.ChartType.BAR)
 .addRange(sheets[insert appropriate sheet index here].getRange("A1:B4"))
 .setPosition(5, 5, 0, 0)
 .setOption("title", "Dynamic Chart")
 .build();
 sheet.insertChart(chart);