是否可以将数据范围从一个电子表格复制到另一个电子表格?

Is possible to copy a data range from one spreadsheet to another?

function transferDataToDataBase(){
    
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    
    var DB = SpreadsheetApp.openById("SHEET ID");
    
    var SCPM_Input = ss.getSheetByName("Report")[0];
    
    var history_Input = DB.getSheetByName(Database);
    
    var blankRow = history_Input.getLastRow();
    
    SCPM_Input.getRange(("A2:T").copyTo(history_Input.getRange(blankRow+1,1,blankRow+1,20));
    
}

问题:

  1. 最后一行“;”处有错误,不知如何解决。说语法错误;
  2. 似乎 copy To 仅适用于从一个 sheet 转移到同一价差 sheet 中的另一个,但不适用于价差 sheet 之间。有没有办法在 spreadsheets 之间复制到?

非常感谢。

如果您还想复制格式,则复制整个 sheet/tab,然后使用 copyTo() 复制范围,然后删除复制的 sheet。或者,如果您只想要数据,请使用 getValues() 和 setValues();

这是问题的一部分:

var SCPM_Input = ss.getSheetByName("Report")[0]; 因为末尾的索引零不应该存在,并且您不能在 sheet 中有 sheet.getLastRow() + 1 行数,如下一行所示.

SCPM_Input.getRange(("A2:T").copyTo(history_Input.getRange(blankRow+1,1,blankRow+1,20));

并且 copyTo 在 spreadsheet 秒之间不起作用。

有更新: 由于数据库将被多个用户使用。我建立了一个独立的数据库。我将我的“报告”sheet 从传播sheet 1 复制到传播sheet 2。它将创建一个sheet“报告副本”。我重命名,复制到数据库sheet 并删除它。

如果有更简单的方法,请随时讨论。谢谢。

// 将报告传输到数据库 Spreadsheet

函数 transferDataToDataBase(){

var ss = SpreadsheetApp.getActiveSpreadsheet();

var db = SpreadsheetApp.openById('spreadsheet ID')

var scpm_Input = ss.getSheetByName("报告");

scpm_Input.copyTo(db);

Utilities.sleep(3000);

db.getSheetByName('copy of report').setName('Import')

var history_Input = db.getSheetByName('Database');

var blankRow = history_Input.getLastRow();

var 目标 = db.getSheetByName('Import');

target.getRange("A2:T").copyTo(history_Input.getRange(blankRow+1,1,blankRow+1,20));

history_Input.getRange(blankRow+1,21).setValue(new Date()).setNumberFormat("yyyy-mm-dd h:mm") //更新日期和时间

db.deleteSheet(目标);

}