【问题标题】:Error inserting chart in google sheet在谷歌表格中插入图表时出错
【发布时间】:2015-03-28 19:56:51
【问题描述】:

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

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

sheet.insertChart(chart.build());

很遗憾,我收到一条错误消息“找不到方法 insertChart(Chart)”。

似乎 sheet.insertChart 函数必须采用嵌入式图表。

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

问候 克鲁兹

【问题讨论】:

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


    【解决方案1】:

    您使用的方法是将图表添加到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 应用脚本文档中的 here

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

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

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

    【讨论】:

    • 我无法使用 getRange。它必须是一个数据表,因为数据来自不同的工作表,需要先放在一个表中。
    • @Crouzilles 我已经更新了我的答案以解决 DataTable 类的使用问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多