Google Spreadsheet脚本添加“图表”表

时间:2012-10-23 21:34:31

标签: javascript charts google-apps-script spreadsheet google-sheets

在Google SpreadSheet中,可以将图表移动到自己的工作表中,我想以编程方式执行相同的操作,这是我的代码:

  var sheet = SpreadsheetApp.getActiveSheet(),
      spreadSheet = SpreadsheetApp.getActiveSpreadsheet(),
      rows = sheet.getDataRange(),
      numRows = rows.getNumRows(),
      values = rows.getValues();
  // ....
  var pos = values[i][0],
    name = values[i][1],
    avg = values[i][13],
    range = sheet.getRange("C" + i + ":M" + i);
  // ....
  var chart = sheet.newAreaChart()
      .setPosition(1, 1, 10, 10)
      .setChartType(Charts.ChartType.BAR)
      .setOption('title', name)
      .addRange(range)
      .build();
  spreadSheet.insertSheet(name).insertChart(chart);

我该怎么做?

编辑:

这里要更清楚的是我的脚本做了什么:

enter image description here

这就是我想要它做的事情:

enter image description here

2 个答案:

答案 0 :(得分:1)

目前没有这样的方法。当你运行

时,它们的工作表上的图表甚至都不会出现
spreadsheet.getSheets();

一开始我把我的一些脚本扔了。但是,如果您可以以编程方式创建图表,则可以在小工具中创建图表并在网站上显示。某些类型无法使用GAS进行编辑(即组合图表)。

答案 1 :(得分:0)

我认为有一种方法可以通过编程方式将图表一步一步地移动到自己的工作表中,但您可以使用以下内容执行此操作:

var sheet = SpreadsheetApp.getActiveSheet();
var charts = sheet.getCharts();
sheet.removeChart(charts[0]); // move first chart to another sheet

var newSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet();
newSheet.insertChart(charts[0]);
相关问题