Google 表格应用程序脚本:您可以将数组写入单行而不是单列吗?
Google Sheets App Script: Can you write an array to a single row instead of a single column?
方法 .setValues()
将获取一个数组 [[0],[1],[2],[3]]
并将其写入 .getRange()
中,该数组必须位于单列中的多行中:A1、A2、A3、A4 .
相反,我想写入相同的数组,但将其写入一行:A1、B1、C1、D1。这是可能的还是我必须重新排列数组以始终写入单个列?
编辑:对不起,我想我不清楚。我基本上是在寻找一种方法或类似于使用数组的 appendRow 方法的东西。该数组可以是一维或二维的(我可以轻松地编写一个循环来创建其中任何一个)。 appendRow 对我不起作用的原因是因为此方法会将数组放在数据的底部。我想把这行数据放在我可以指定的范围内。
例如,使用上面的数组,我想将该数组写入 getRange(1,4,1,4),其中数据已经存在于 getRange(1,3,10,10) 中。
试试这个
function getData() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// var dataArray = ss.getRange(1, 1, ss.getLastRow(), 1).getValues();
var dataArray = [[0],[1],[2],[3]]
var dataUnit;
var data = [];
for (var i = 0; i < dataArray.length; i++) {
dataUnit = dataArray[i].toString();
data.push(dataUnit);
}
ss.appendRow(data);
}
另一种方式是
var dataArray = [[0],[1],[2],[3]].reduce(function (a, b) {
return a.concat(b);
});
Logger.log(dataArray); // [0, 1, 2, 3]
或者,如果您需要一个二维数组(.setValues() 需要)
var dataArray = [[[0],[1],[2],[3]].reduce(function (a, b) {
return a.concat(b);
})];
Logger.log(dataArray); // [[0, 1, 2, 3]] --> 2D array representing a single row.
方法 .setValues()
将获取一个数组 [[0],[1],[2],[3]]
并将其写入 .getRange()
中,该数组必须位于单列中的多行中:A1、A2、A3、A4 .
相反,我想写入相同的数组,但将其写入一行:A1、B1、C1、D1。这是可能的还是我必须重新排列数组以始终写入单个列?
编辑:对不起,我想我不清楚。我基本上是在寻找一种方法或类似于使用数组的 appendRow 方法的东西。该数组可以是一维或二维的(我可以轻松地编写一个循环来创建其中任何一个)。 appendRow 对我不起作用的原因是因为此方法会将数组放在数据的底部。我想把这行数据放在我可以指定的范围内。
例如,使用上面的数组,我想将该数组写入 getRange(1,4,1,4),其中数据已经存在于 getRange(1,3,10,10) 中。
试试这个
function getData() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// var dataArray = ss.getRange(1, 1, ss.getLastRow(), 1).getValues();
var dataArray = [[0],[1],[2],[3]]
var dataUnit;
var data = [];
for (var i = 0; i < dataArray.length; i++) {
dataUnit = dataArray[i].toString();
data.push(dataUnit);
}
ss.appendRow(data);
}
另一种方式是
var dataArray = [[0],[1],[2],[3]].reduce(function (a, b) {
return a.concat(b);
});
Logger.log(dataArray); // [0, 1, 2, 3]
或者,如果您需要一个二维数组(.setValues() 需要)
var dataArray = [[[0],[1],[2],[3]].reduce(function (a, b) {
return a.concat(b);
})];
Logger.log(dataArray); // [[0, 1, 2, 3]] --> 2D array representing a single row.