将1D数组写入Apps脚本中的工作表列

时间:2015-09-19 14:59:45

标签: google-apps-script google-sheets

我正在尝试使用Apps Script将长1D数组写入工作表中的列,但无法使其工作。尝试了setValues()但它需要一个2D数组。

function writeArrayToColumn() {
var mainSheet = SpreadsheetApp.getActiveSheet()
var array = ["M", "C", "D", "F", "R", "S", "Q", "V", "G"]
var range = mainSheet.getRange(2, 1, array.length, 1)
range.setValue(array)
}

这只在前9个单元格中写入“M”而不是“1”中的“M”,2中的“C”,依此类推。 如果我使用setValues(),我会收到一个错误:

Cannot convert Array to Object[][].

Stack Overflow也有类似的问题,但没有人能回答这个问题。

2 个答案:

答案 0 :(得分:1)

除了Sandy的解释,添加map()函数也应该有效。

function writeArrayToColumn() {
var mainSheet = SpreadsheetApp.getActiveSheet()
var array = ["M", "C", "D", "F", "R", "S", "Q", "V", "G"]
    .map(function (el) {
        return [el];
    });
var range = mainSheet.getRange(2, 1, array.length, 1)
range.setValues(array)
}

答案 1 :(得分:0)

作为一种选择,请确保在创建数组时使用“ []”将要插入值或变量的值推入到数组中,例如:

array.push(["M"];
range.setValues(array);

这将创建一个2d数组,可以使用setValues正确插入。