如何获取行中的所有非空单元格数据 - Google Sheets 脚本编辑器

cha*_*ilk 4 scripting cell google-sheets google-sheets-api google-apps-script-editor

我不确定这是否可能,而且说实话,我没有尝试很多事情,因为我不知道从哪里开始。顺便说一句,我正在使用 Google Sheets 中的脚本编辑器。我知道有 SpreadsheetApp.getRange() 和另一个来获取值或类似的东西。但我想要的有点具体。

有没有办法获取给定行中的所有单元格数据并将其放入数组中?行的大小会有所不同,这就是为什么我无法确定精确的范围。

例如,如果我要让行具有这些值:

abc | 123 | 987 | efg
blah| cat | 654
Run Code Online (Sandbox Code Playgroud)

我希望能够获取这些值并将它们放入一个数组中,例如 ["abc", "123", "987, "efg"]。然后,如果我在下一行运行该函数,它将是 [ “等等”,“猫”,“654”]。

实际上,只要有我能够使用的分隔符,它就可以放入任何数据类型中。

先感谢您!

小智 5

如果没有脚本,这更容易实现,公式=filter(1:1, len(1:1))会返回第 1 行非空单元格中的所有值,等等。

从脚本中,您可以执行以下操作:

function flat_nonempty() {
  var range = SpreadsheetApp.getActiveSheet().getRange("A:A"); // range here
  var values = range.getValues();
  var flat = values.reduce(function(acc, row) {
    return acc.concat(row.filter(function(x) {
      return x != "";
    }));
  }, []);
  Logger.log(flat); // flat list of values, no blanks
}
Run Code Online (Sandbox Code Playgroud)

这里的范围可以有一行或多行。