使用appendRow错误地粘贴数组

时间:2017-07-26 14:46:49

标签: javascript google-apps-script google-sheets

这是代码:

    function worksheet(){
var arraymi = worksheetmi.getRange("A2:D").getValues();
var arraymi_n = [];
var arrayme = worksheetme.getRange("A2:D").getValues();
var arrayme_n = [];

for(x in arraymi){

if(arraymi[x][1] || arraymi[x][2] != ""){
var last = arraymi[x].pop();
arraymi[x].unshift(last);
arraymi_n.push(arraymi[x])
}}

for(x in arrayme){

if(arrayme[x][1] || arrayme[x][2] != ""){
var last = arrayme[x].pop();
arrayme[x].unshift(last);
arrayme_n.push(arrayme[x])

}}
var bdarray = bdworksheet.getRange("A1:A").getValues();
var length = bdarray.filter(String).length;
var bdarray = bdworksheet.getRange("A1:D"+length+"").getValues();
for(x in arraymi_n){
bdarray.push(arraymi_n[x]);
}
for(x in arrayme_n){
bdarray.push(arrayme_n);
}


var length = bdarray.length;
bdworksheet.getRange(1,1,bdarray.length,bdarray[1].length).setValues(bdarray);
}

这是错误:

  

范围宽度不正确,为253,但应为4(第132行,文件“代码”)

任何想法为什么会发生这种情况?在使用相同的方法之前我已经做到了,但是253宽度让我烦恼!

1 个答案:

答案 0 :(得分:1)

显然你传递一个double数组作为appendRow的参数,它需要一个行内容的数组,比如['q', 'w', 'e', 'r']

要插入双数组,请使用getRange ... setValues组合,如下所示:

  var sheet = SpreadsheetApp.getActiveSheet();
  var values = [[1, 2], [3, 4], [5, 6], [7, 8]];
  sheet.getRange(sheet.getLastRow()+1, 1, values.length, values[0].length).setValues(values);

这会根据需要自动添加行。