自定义函数:返回值不同于setValues()

时间:2018-06-08 15:00:31

标签: google-apps-script google-sheets

我正在Sheets中创建一个自定义函数,它接受设备的序列号并返回制造商API的保修信息。如果我在单个序列号上调用该函数,我会在电子表格的相邻单元格中获得预期的输出,但是当我在包含序列号的范围内调用它时,我会得到一个空白单元格。

我创建了第二个测试函数,使用setValues()来填充数据,它完美地运行:

var result = GET_WARRANTY(SpreadsheetApp.getActive().getActiveSheet().getRange("Warranty Details!H3:H9").getValues());
SpreadsheetApp.getActive().getActiveSheet().getRange("Warranty Details!I3:L9").setValues(result)

供参考,以下是result变量的内容(为了便于阅读而添加了新行)。使用typeof()表示所有数据都被视为Apps脚本中的字符串。

[[[EXTENDED], [2016-06-12], [2018-06-11], [latitude-e5450-laptop]],
[[INITIAL], [2016-08-03], [2017-11-01], [chromebook-11-3120]],
[[INITIAL], [2017-03-26], [2018-03-26], [chromebook-13-3380-laptop]],
[[INITIAL], [2016-08-03], [2017-11-01], [chromebook-11-3120]],
[[INITIAL], [2016-08-03], [2017-11-01], [chromebook-11-3120]],
[[INITIAL], [2016-08-03], [2017-11-01], [chromebook-11-3120]],
[[INITIAL], [2016-08-03], [2017-11-01], [chromebook-11-3120]]]

我的自定义功能的结尾是

//mutliple inputs
results.push([[warrantyType],[warrantyStart],[warrantyEnd],[model]]);
//single input
var results = [warrantyType,warrantyStart,warrantyEnd,model];
return results;

其中warrantyTypewarrantyStartwarrantyEndmodel都是从API JSON响应中解析出的字符串。

我没有找到解释函数return results;的行为的任何内容来解释为什么相同的数据在两个进程之间的行为方式不同。

1 个答案:

答案 0 :(得分:0)

将3D数组更改为2D数组:

尝试更改:

results.push([warrantyType,warrantyStart,warrantyEnd,model]);

<?php wp_footer() ?>
相关问题