首先,对我的技能感到抱歉;我的编码背景为零,我只是试图修改脚本以适合我的需求。
我需要在两行数据表的数据范围内setValues
。
当前脚本在第一行中设置值。 我应该如何修改脚本,以便可以从2行中的4个值中获取数据?
当前行为:
我的首选行为:
要运行的功能:打印
function Print() {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet").getRange(1, 1, 1, 2).setValues(Data());
}
function Data() {
var array = [];
var score = "retrieved score";
var time = (2+2);
var device = "device";
var speed = 3+3;
array.push([score,time]);
Utilities.sleep(1000);
return array;
}
答案 0 :(得分:2)
问题
尝试将2 x 2值矩阵设置为1 x 2范围
解决方案
您的值必须匹配范围的尺寸。该工作表是一个由单元格组成的矩阵:
| | col 1 | col 2 | | ----- | ----------------- | ----- | | row 1 | "retrieved score" | 4 | | row 2 | "device" | 6 |
二维数组基本相同,其中外层表示行,内层表示列:
[
[ "retrieved score", 4 ],
[ "device", 6 ]
]
因此,只需进行简单的修改,即可正确填充单元格:
function Print() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const rng = ss.getSheetByName("sheet").getRange(1, 1, 2, 2);
const values = Data();
rng.setValues(values);
}
function Data() {
var array = [];
var score = "retrieved score";
var time = 2+2;
var device = "device";
var speed = 3+3;
array.push([score, time], [device, speed]);
Utilities.sleep(1000);
return array;
}
注释
sleep()
实用程序方法。内存阵列中的操作是同步的和原子的(对于setValues
而言,这是不正确的,因为它是I / O操作)。参考