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.