相关疑难解决方法(0)

范围方法 getValues() 返回和 setValues() 接受什么?

我想从我的工作表中获取一个范围。按照最佳实践中的建议,我试图获取一个数组并对其进行操作,但我很困惑:

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

1
推荐指数
1
解决办法
1630
查看次数