Google表格:如何使自定义函数的返回值溢出到一行?

时间:2016-01-02 07:21:06

标签: javascript google-apps-script google-sheets google-apps

我编写了一个返回简单数组的自定义函数。 (这是在多张纸上进行简单的脏3D查找)。如果它有帮助,这是代码:

function get3DCellValues(startSheet, endSheet, cell) {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var sum = 0;
var cellValues = [];
for (var i = (startSheet); i < endSheet; i++ ) {
    var sheet = sheets[i];
    var val = sheet.getRange(cell).getValue();
    cellValues.push(val);
}
//Logger.log(cellValues);
return cellValues;
}

问题是,当我返回cellValues时,值会向列溢出。但是我希望它能够在行中向右溢出。有办法吗?谢谢。

谷歌的guide对于返回值的自定义函数有这个说法:

  

每个自定义函数都必须返回要显示的值,例如:

     

如果自定义函数返回值,则该值将显示在单元格中   该函数是从。如果自定义函数返回一个   二维数组值,值溢出到相邻   细胞只要那些细胞是空的

但这似乎对我没有帮助。

2 个答案:

答案 0 :(得分:8)

数组中的每个条目代表一行。 例如[[1,2],[3,4]]将分为两行[1,2][3,4]

[1,2,3,4]被解释为[[1],[2],[3],[4]],因此它是4行,每行一个。

如果您只需要一行,则可以编写[[1,2,3,4]]

所以你必须像这样改变你的代码

...
var cellValues = [[]];
...
cellValues[0].push(val);

答案 1 :(得分:1)

SpiderPig非常明确的答案对我帮助很大。

如果您只想返回一行,那么您也可以将代码编写为

...
var cellValues = [];
...
cellValues.push(val);
...
return [cellValues];

这将返回一个数组,其中包含您的cellValues数组作为其第一个且唯一的条目