在gSheets中附加一个数组?

时间:2017-07-20 13:51:20

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

首先,我在这里非常缺乏经验,如果这很明显就道歉。

我有一个自动更新的数据数组,我希望将这些数据复制出来,以便我有一个存档。

我设法找到以下适用于我想要的脚本:



 function saveInstaPostData() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("xxx");
var data0 = sheet.getRange("xxx!A2:AQ21").getValue();
var data1 = sheet.getRange("xxx!B2").getValue();
var data2 = sheet.getRange("xxx!C2").getValue();
var data3 = sheet.getRange("xxx!D2").getValue();
 sheet.appendRow([data1,data2,data3,...]);
}




然而,我有860个细胞,所以逐个进行是不可行的。

读取appendRow方法我意识到它(似乎)一次只能追加一行。我只有20行,所以这仍然是可行的。

然后我尝试使用



function saveInstaPostData() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("Insta faction post data");
 var values = sheet.getSheetValues(2, 1, 1, 43);
 sheet.appendRow([values]);




但是,这会在新行的第一个单元格中输出以下内容:[Ljava.lang.Object; @ 247f2c9a

这似乎是我试图追加的数组java: what is this: [Ljava.lang.Object;?但是我无法让它发挥作用!

[我也尝试过使用



function saveInstaPostData() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("Insta faction post data");
 var range = sheet.getRange(2,1,20,43);
 var values = range.getValues();  
 sheet.appendRow([values]);




这输出'范围'在新行的第一个单元格中。 ]

任何指针都会非常感激,

谢谢,

1 个答案:

答案 0 :(得分:0)

在您的示例中,您尝试附加三维数组:

var values = sheet.getSheetValues(2, 1, 1, 43);

var range = sheet.getRange(2,1,20,43);
var values = range.getValues();  

你的价值观"变量包含一个双维数组,您已将其放入单维数组:

sheet.appendRow([values]); // [values] put bi dimensionnal array in a mono dimensionnal array

要追加数据,您需要追加数组的每一行,例如:

for(var i=0; i<values.length;i++){
  sheet.appendRow(values[i]);
}