在Google工作表中插入图表时出错

时间:2015-03-28 19:56:51

标签: google-apps-script google-sheets google-apps

我有以下代码,可以让我创建一个条形图

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

sheet.insertChart(chart.build());

不幸的是,我收到错误消息“找不到方法insertChart(图表)”。

似乎sheet.insertChart函数必须采用embeddedChart。

如何将我的图表转换为嵌入式图表,以便insertChart函数接受它?

此致 Crouz

1 个答案:

答案 0 :(得分:3)

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

 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 App脚本文档中的here

此外,DataTable类用于在向html or the UiApp添加图表时创建图表。如果您想将图表添加到电子表格,就像用户点击了插入>图表,您必须使用getRange来绘制数据。如果您从多个来源绘制数据,我建议您使用sheet.getRange().setValue()将数据合并到电子表格中的某个位置。

如果您想从单独的Google电子表格中提取数据,那么您可以执行以下操作:

//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);