[英]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.