当我在 Google 表格中将范围作为我的自定义函数的参数时,我会得到什么样的对象?

What sort of objects do I get when I give range as an argument to my custom function in Google Sheets?

我正在编写函数以像 Google 工作表中的公式一样使用它,并将范围作为参数,例如“=myFormula (A1: A5)”。我不知道我得到的是什么类型的对象,我在哪里可以阅读它的方法。例如,在 A1 单元格中有一个日期,在 A2 中有一个文本。如何检查这些单元格中的值类型?

如果参数是单元格区域,则您收到的参数是一个二维数组 - 外部数组按行排序,内部数组按列排序。如果参数是单个单元格,您将收到一个对象。

参数类型:Object[][]Object

数组中的JavaScript对象类型对应于电子表格中的对象类型,即电子表格日期对象更改为对应的JavaScript日期对象,数字为数字等.

//Run snippet to see A 3x2 argument structure example
var cols = ['A','B'];
var rows = [1,2,3]
console.log(rows.map(row=>cols.map(col=>col+row)))

参考文献:

下面的示例可能会提供一些帮助,帮助您可视化在范围内使用 getValues() 时返回的数组。

function makeArray() {
  var spsht=SpreadsheetApp.getActive();
  var sht=spsht.getActiveSheet();
  var dataA=[];//We will create a 10 x 10 array with row and column values in each cell
  for(var i=0;i<10;i++) {
    dataA[i]=[];
    for(var j=0;j<10;j++ ){
      dataA[i][j]="row: " + +(i+1)  + " col: " + +(j+1);//The contents of each cell
    }    
  }
  sht.getRange(1,1,dataA.length,dataA[0].length).setValues(dataA);
  var rng=sht.getRange('A1:A10');//You can change this range to anything you like within the 10 x 10 range
  var values=rng.getValues();
  Logger.log(values);//[[row: 1 col: 1],[row: 2 col: 1],[row: 3 col: 1],[row: 4 col: 1],[row: 5 col: 1],[row: 6 col: 1],[row: 7 col: 1],[row: 8 col: 1],[row: 9 col: 1],[row: 10 col: 1]]

}