我想从我的工作表中获取一个范围。按照最佳实践中的建议,我试图获取一个数组并对其进行操作,但我很困惑:
const ss = Spreadsheet.getActive(),
sh = ss.getSheetByName("Sheet1"),
rg = sh.getRange("A1:C1"),//has 1,2,3
values = rg.getValues();
console.log(values);
Run Code Online (Sandbox Code Playgroud)
日志显示
[[1,2,3]]
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我得到了所有三个元素。但是,当我记录数组(array.length)的长度时,它只是 1(而不是 3)。当我使用.indexOfor测试元素是否存在时.includes,它显示 -1 或false。
const ss = Spreadsheet.getActive(),
sh = ss.getSheetByName("Sheet1"),
rg = sh.getRange("A1:C1"),//has 1,2,3
values = rg.getValues();
console.log(values);
Run Code Online (Sandbox Code Playgroud)
为什么?
我有同样的问题setValues()。
rg.setValues([1,2,3]);//throws error
Run Code Online (Sandbox Code Playgroud)
错误是
“参数 (number[]) 与 SpreadsheetApp.Range.setValues 的方法签名不匹配。”
我的具体问题是:究竟getValues() 返回什么?它是一种特殊的数组吗?
arrays multidimensional-array google-sheets google-apps-script