由于 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;
}