当我在 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]]
}
我正在编写函数以像 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]]
}