使用Google表格脚本编辑器, 我从一行获取数组但需要将其写入列中的单元格。
这有效......
var values1 = [
[row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[11], row[10], row[24]]
];
var range1 = Editsheet.getRange("A1001:L1001");
range1.setValues(values1);
但我想要的是......
var values1 = [
[row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[11], row[10], row[24]]
];
var range1 = Editsheet.getRange("D6:D17");
range1.setValues(values1);
答案 0 :(得分:0)
您需要像这样修改代码
//Put each element to be inserted into a row in the sheet into its own array/2 Dimension
var values1 = [
[row[1]], [row[2]], [row[3]], [row[4]], [row[5]] ... ,[row[24]]
];
// Your range size should match the array size so your range will be from D6:D29 (Total of 1 - 24 = 23 values in aray)
var range1 = Editsheet.getRange("D6:D29");
// or you do this instead getRange(rowNo,ColNo,NoOFColumn,NoOfRow)
range1 = Editsheet.getRange(6,4,values1.length,1)
range1.setValues(values1);
您还可以使用循环将行值推送到新数组中,如此
var values = []
for(var i = 0; i < 24; i++){
values[i] = []
values[i][0] = row[i+1] //Note modifying Row will also modify values
}
var range1 = Editsheet.getRange(6,4,values1.length,1)
range1.setValues(values1);
希望这有帮助
答案 1 :(得分:0)
当数据阵列从“A1001:L1001”导入“D6:D17”时,需要转置数组。现在你有一个包含1行x 12列的数组。在这种情况下,必须创建具有12行x 1列的数组。该脚本如下。
var values1 = [
[row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[11], row[10], row[24]]
];
var values2 = [[i] for each (i in values1[0])]; // Here, transpose value1
var range1 = Editsheet.getRange("D6:D17");
range1.setValues(values2);
如果要从具有n行x m列的数组转置到m行x n列的数组,可以使用以下脚本。
var values2 = [];
for (i in values1[0]){
values2.push(values1.map(function(e,j){return e[i]}));
}