Google App脚本 - sheet.getCharts()和趋势图

时间:2012-08-09 19:53:03

标签: google-apps-script

由于Google电子表格不支持动态范围(例如A:A),因此我需要能够使用App Script更新趋势图的范围。不幸的是,Sheet对象的getCharts()方法不返回趋势图的条目。趋势图可以通过脚本访问吗?我已经验证以下代码适用于其他图表类型。

function expandCharts() {
  var sheet = SpreadsheetApp.getActiveSheet()
  var charts = sheet.getCharts();

  for (var i in charts) {
    var chart = charts[i];
    var ranges = chart.getRanges();
    var builder = chart.modify();
    for (var j in ranges) {
      var range = ranges[j];

      builder.removeRange(range);
      var newRange = expandRange(range, 5);
      builder.addRange(newRange);
    }

            builder.setOption('title', 'Last updated ' + new Date().toString());
    sheet.updateChart(builder.build());
  }
}

function expandRange(range) {
  var s = range.getSheet()
  var startCol = range.getColumn();
  var lastRow = s.getLastRow();
  var startRow = 1;  
  var numCols = range.getNumColumns();

  range = s.getRange(1, startCol, lastRow, numCols);  
  return range;
}

1 个答案:

答案 0 :(得分:0)

看不到自己做的方法。图表服务也不允许您创建趋势图表。 https://developers.google.com/apps-script/class_charts

修改:“并非所有图表类型都受支持”https://developers.google.com/apps-script/class_charts_charttype