我正在尝试使用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也有类似的问题,但没有人能回答这个问题。
答案 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正确插入。