2

在 Google 表格中,可以将图表移动到自己的表格中,我想以编程方式做同样的事情,这是我的代码:

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

我怎样才能做到这一点?

编辑:

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

在此处输入图像描述

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

在此处输入图像描述

4

2 回答 2

1

目前没有这样的方法。当您运行时,他们的工作表上的图表甚至不会显示

spreadsheet.getSheets();

起初,这让我对我的一些剧本感到厌烦。但是,如果您可以通过编程方式创建图表,那么您可以在小工具中创建它并在站点上显示它。某些类型不能使用 GAS 进行编辑(即组合图表)。

于 2012-10-26T20:12:13.977 回答
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]);
于 2012-10-26T15:54:18.980 回答