mca*_*ado 6 google-sheets google-apps-script
我正在尝试使用 Apps 脚本将一个长一维数组写入工作表中的一列,但无法使其工作。尝试过 setValues() 但它需要一个二维数组。
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)
}
Run Code Online (Sandbox Code Playgroud)
这仅在前 9 个单元格中写入“M”,而不是在 1 个单元格中写入“M”,在 2 个单元格中写入“C”,依此类推。如果我使用 setValues() 我得到一个错误:
Cannot convert Array to Object[][].
Run Code Online (Sandbox Code Playgroud)
Stack Overflow 上也有类似的问题,但没有人能回答这个问题。
我认为您想为每一行写入新值。所以这是您需要的代码:
function writeArrayToColumn() {
var mainSheet = SpreadsheetApp.getActiveSheet();
var array = ["M", "C", "D", "F", "R", "S", "Q", "V", "G"];
var outerArray = [],
tempArray = [],
i=0;
for (i=0;i<array.length;i+=1) {
tempArray = [];
tempArray.push(array[i]);
outerArray.push(tempArray);
};
var range = mainSheet.getRange(2, 1, array.length, 1);
range.setValues(outerArray);
};
Run Code Online (Sandbox Code Playgroud)
如果要将数组写入一行,其中每个数组元素将进入一个新单元格,创建一个外部数组,并将内部数组推入外部数组:
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);
var outerArray = [];
outerArray.push(array);
range.setValues(outerArray);
};
Run Code Online (Sandbox Code Playgroud)
如果您想将每个数组元素放入一个新行,那就会有所不同。您需要循环遍历数组,并为每个元素创建一个新数组。
| 归档时间: |
|
| 查看次数: |
7152 次 |
| 最近记录: |