首先,我在这里非常缺乏经验,所以如果这是显而易见的,我深表歉意。
我有一个自动更新的数据数组,我希望复制这些数据,以便我拥有它的存档。
我设法找到了以下适合我想要的脚本:
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]);
这会在新行的第一个单元格中输出“Range”。 ]
任何指示将不胜感激,
谢谢
最佳答案
在您的示例中,您尝试附加一个三维数组:
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]);
}
关于javascript - 在表格中追加数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216735/