首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google电子表格脚本中图表命名范围的问题

Google电子表格脚本中图表命名范围的问题
EN

Stack Overflow用户
提问于 2015-03-05 23:41:27
回答 1查看 259关注 0票数 1

几天来,我一直在尝试创建具有智能范围的图表,当google电子表格中的数据更新时,图表会有所不同。然而,我成功地做到了这一点,我不能让.setOption方面工作。例如,我想要一个标题,描述等与图表。但这不是主要问题,因为我可以手动插入。

然而,更重要的是范围名称,因为在我使用脚本时没有。因此,在图表中,不可能看到每一列代表什么,我真的想解决这个问题。我尝试使用.setNamedRange()方面,但这不起作用。

有人能帮我吗?

代码语言:javascript
运行
复制
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());  

   }
    }
  }

}
EN

回答 1

Stack Overflow用户

发布于 2015-03-08 01:11:21

我假设这段代码就是问题所在?

代码语言:javascript
运行
复制
builder
.addRange(sheet.getRange("A" + (start) + ":" + "A" + end))

也许可以尝试使用JavaScript toString()方法来确保您的文本公式有效。

代码语言:javascript
运行
复制
.addRange(sheet.getRange("A" + start.toString() + ":" + "A" + end.toString()))

您可以使用一种不同的格式:

代码语言:javascript
运行
复制
getRange(row, column, numRows, numColumns)

因此,它将是:

代码语言:javascript
运行
复制
getRange(start, 1, 1, numColumns)

它从A列的"start“行开始,它得到一行数据,以及有多少列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28881846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档