2017-07-20 67 views
1

首先,我在这里很缺乏经验,所以如果这是显而易见的道歉。在gSheets中追加数组?

我有一个数据自动更新的数组,我想复制这些数据,所以我有一个档案。

我设法找到下面的脚本,它适用于我想要的东西:

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;?),但是我无法让它工作!

[I也在新行的第一个单元使用

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]);

此输出 '范围' 尝试。 ]

任何指针将是非常赞赏,

感谢,

+0

@皮埃尔 - MarieRichard为什么不作为答复发布? –

+0

@JamesDonnellan我不确定是否有其他问题,我很急 –

回答

0

在你的榜样,您尝试添加三dimensionnal阵列:

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

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

您的“值”变量包含一个bi维度数组,牛逼你已经把一个单dimensionnal阵列:

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]); 
} 
+0

谢谢,不幸的是它返回相同的[[Ljava.lang.Object; @ 33c113bd'有可能该函数不能列出数组? ! – user8337890

+0

该函数附加一个新的单行维数列作为参数行。你能提供你的工作表样本吗? –

+0

我意识到我在实现你的建议时犯了一个简单的语法错误 - 它确实有效!谢谢 – user8337890