Rex*_*ker 2 google-sheets google-apps-script
我尝试从 Google Sheet 中的多个非相邻单元格获取值(作为数组)。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var arr = ['C1', 'C2', 'C4'];
var val = ss.getRangeList(arr).getValues();
Logger.log(val);
}
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
类型错误:ss.getRangeList(...).getValues 不是函数”。
非常感谢您的帮助。
这个修改怎么样?
getValues。我认为这就是你的问题的原因。['C1', 'C2', 'C4'],需要使用 的方法getRanges。至此,getValues就可以使用了。当这些反映到你的脚本中时,它就会变成如下所示。
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);
}
Run Code Online (Sandbox Code Playgroud)
val都是二维数组。在您的情况下,每个单元格都是一个单元格。所以我认为下面的脚本也可以使用。
var val = ss.getRangeList(arr).getRanges().map(range => range.getValue());
Run Code Online (Sandbox Code Playgroud)
或者,为了从多个不相邻的单元格中检索值,我创建了Google Apps 脚本库的RangeListApp 。使用此功能时,您的脚本如下所示。
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1719 次 |
| 最近记录: |