使用Google Script在Google表格中添加图表 [英] Adding a chart in Google Sheets with Google Script

查看:63
本文介绍了使用Google Script在Google表格中添加图表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Google表格的工作表中添加图表,但是Google Script说找不到方法insertChart(Charts.Chart)方法.(第39行,文件代码")).但是我使用的是文档中编写的方法.我在做什么错了?

I'm trying to add a chart in a sheet on Google Sheets but Google Script is saying "Cannot find method insertChart(Charts.Chart). (line 39, file "Code")". But I'm using the method that written in the documentation. What am I doing wrong ?

function doGet()
{
    var app = SpreadsheetApp;
    var ss = app.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    //
    var artistsArray;
    var dataArtists;
    //
    artists = {};
    dataArtists = Charts.newDataTable()
      .addColumn(Charts.ColumnType.STRING, 'Artists')
      .addColumn(Charts.ColumnType.NUMBER, 'Count');
    //  
    for (var line = 2 ; line <= ss.getDataRange().getNumRows() ; line++)
    {
      value = sheet.getRange(line, 3).getValue();
      if (isNaN(artists[value]))
        artists[value] = 1;
      else
        artists[value]++;
    }
    //
    for(var key in artists)
    {
      console.log(key, artists[key])
      dataArtists.addRow([key, artists[key]]);
    }
    dataArtists.build()
    //
    var artistsChart = Charts.newBarChart()
      .setDataTable(dataArtists)
      .setTitle('Number of Tracks per Artist')
      .setXAxisTitle('Number of  Tracks')
      .setYAxisTitle('Artists')
      .setDimensions(600, 500)
      .build();
      //
    sheet.insertChart(artistsChart);
}

推荐答案

您正在创建图表对象.要使用 insertChart()函数,则需要电子表格中的 EmbeddedChart对象服务.要创建嵌入式图表,请使用 newChart()函数并使用 EmbeddedChartBuilder EmbeddedBarChartBuilder(根据需要条形图)功能.

You're creating a Chart object using Charts service functions. To use insertChart() function, you need an EmbeddedChart object from the Spreadsheet service. To create an embedded chart use newChart() function and to edit it use EmbeddedChartBuilder and EmbeddedBarChartBuilder (as you want a bar chart) functions.

下面的代码是您当前代码的翻译,您需要使用 addRange 函数设置数据范围,在这种情况下为"B4:C17"单元格:

The below code it's a translation of your current code, you need to set the data range with addRange function, being "B4:C17" cells in this case:

function createChart() {
  var app = SpreadsheetApp;
  var ss = app.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var artistsChart = sheet.newChart().asBarChart()
  .addRange(sheet.getRange("B4:C17"))
  .setTitle('Number of Tracks per Artist')
  .setXAxisTitle('Number of  Tracks')
  .setYAxisTitle('Artists')
  .setPosition(4, 7, 0, 0)
  .build();

  sheet.insertChart(artistsChart);
}

请注意,您应该更改函数名称,因为doGet函数名称用于 Web应用.

Notice you should change your function name because the doGet function name is used for Web Apps.

这篇关于使用Google Script在Google表格中添加图表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆