[英]How to set values in a bidimensional array?
首先,对不起我的技能; 我的编码背景为零,我只是想修改一个脚本以满足我的需要。
我setValues
在两行数据表数据范围内设置值。
当前脚本设置第一行中的值。 我应该如何修改脚本,以便我可以从 2 行中的 4 个值中获取数据?
当前行为:
我的首选行为:
Function 运行:打印
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;
}
问题
尝试将 2 x 2 值矩阵设置为 1 x 2 范围
解决方案
您的值必须与范围的尺寸相匹配。 工作表是由单元格组成的矩阵:
| | col 1 | col 2 | | ----- | ----------------- | ----- | | row 1 | "retrieved score" | 4 | | row 2 | "device" | 6 |
二维 arrays 基本相同,其中外层表示行,内层表示行:
[
[ "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 操作)。参考
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.