gpt4 book ai didi

google-apps-script - 从多个不相邻的单元格获取值

转载 作者:行者123 更新时间:2023-12-02 02:42:07 24 4
gpt4 key购买 nike

我尝试从 Google 表格中的多个不相邻单元格获取值(作为数组)。

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var arr = ['C1', 'C2', 'C4'];
var val = ss.getRangeList(arr).getValues();
Logger.log(val);
}

我得到以下信息:

TypeError: ss.getRangeList(...).getValues is not a function".

非常感谢您的帮助。

最佳答案

这个修改怎么样?

修改点:

  • 不幸的是,RangeList类中没有getValues方法。我认为这就是您出现问题的原因。
  • 为了检索['C1', 'C2', 'C4']单元格中的值,需要使用getRanges方法。这样就可以使用getValues了。

当这些反射(reflect)到您的脚本中时,它会变成如下所示。

修改后的脚本:

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var arr = ['C1', 'C2', 'C4'];
var val = ss.getRangeList(arr).getRanges().map(range => range.getValues()); // Modified
Logger.log(val);
}
  • 在本例中,val 数组中的每个元素都是二维数组。

注意:

  • 在您的情况下,每个单元格都是一个单元格。所以我认为下面的脚本也可以使用。

      var val = ss.getRangeList(arr).getRanges().map(range => range.getValue());
  • 或者,为了从多个不相邻的单元格中检索值,我创建了 RangeListApp Google Apps 脚本库。使用此功能时,您的脚本如下。

      var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheetName = ss.getActiveSheet().getSheetName();
    var arr = ['C1', 'C2', 'C4'];
    var rangeList = arr.map(e => `${sheetName}!${e}`);
    var val = RangeListApp.getSpreadsheet(ss).getRangeList(rangeList).getValues().map(e => e.values);
    Logger.log(val);

引用文献:

关于google-apps-script - 从多个不相邻的单元格获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63406274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com