Charts Google电子表格脚本中图表的命名范围问题
几天来,我一直在尝试创建具有智能范围的图表,当谷歌电子表格中的数据更新时,这些图表会有所不同。然而,我成功地做到了这一点,我无法使.setOption方面工作。例如,我想要一个标题,描述等与图表。但这不是主要问题,因为我可以手动插入 但是,更重要的是范围名称,因为在使用脚本时没有范围名称。因此,在图表中不可能看到每一列代表什么,我真的想解决这个问题。我尝试使用.setNamedRange特性,但这不起作用 有人能帮我吗Charts Google电子表格脚本中图表的命名范围问题,charts,google-apps-script,google-sheets,Charts,Google Apps Script,Google Sheets,几天来,我一直在尝试创建具有智能范围的图表,当谷歌电子表格中的数据更新时,这些图表会有所不同。然而,我成功地做到了这一点,我无法使.setOption方面工作。例如,我想要一个标题,描述等与图表。但这不是主要问题,因为我可以手动插入 但是,更重要的是范围名称,因为在使用脚本时没有范围名称。因此,在图表中不可能看到每一列代表什么,我真的想解决这个问题。我尝试使用.setNamedRange特性,但这不起作用 有人能帮我吗 function check() { var sheet = Sprea
function check() {
var sheet = SpreadsheetApp.getActiveSheet();
var end = sheet.getLastRow();
var start = (end - 5);
var endnew = (end - 4);
var startnew = (end - 6);
if(sheet.getCharts().length == 0){
Logger.log("Er is geen grafiek");
var chartBuilder = sheet.newChart()
.asColumnChart().setStacked()
.addRange(sheet.getRange("A" + startnew + ":" + "A" + endnew)) // should have a name
.addRange(sheet.getRange("B" + startnew + ":" + "B" + endnew)) // should have a name
.addRange(sheet.getRange("E" + startnew + ":" + "E" + endnew)) //should have a name
.setOption('title', 'Effectief gebruik kantoorruimte') //not working
.setPosition(10, 10, 0, 0)
var chart = chartBuilder.build();
sheet.insertChart(chart);
}
else{
Logger.log("Er is wel een grafiek");
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);
builder
.addRange(sheet.getRange("A" + (start) + ":" + "A" + end)) //should have a name
.addRange(sheet.getRange("B" + (start) + ":" + "B" + end)) //should have a name
.addRange(sheet.getRange("E" + (start) + ":" + "E" + end)) // should have a name
.setOption('title', 'Effectief gebruik kantoorruimte')
.build();
sheet.updateChart(builder.build());
}
}
}
}
我假设这个代码就是问题所在
builder
.addRange(sheet.getRange("A" + (start) + ":" + "A" + end))
也许可以尝试使用JavaScript toString方法来确保文本公式正常工作
.addRange(sheet.getRange("A" + start.toString() + ":" + "A" + end.toString()))
您可以使用不同的格式:
getRange(row, column, numRows, numColumns)
因此,它将是:
getRange(start, 1, 1, numColumns)
它从A列的行开始。它得到一行数据,以及多少列