是否可以将数据范围从一个电子表格复制到另一个电子表格?
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));
}
问题:
- 最后一行“;”处有错误,不知如何解决。说语法错误;
- 似乎 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(目标);
}
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));
}
问题:
- 最后一行“;”处有错误,不知如何解决。说语法错误;
- 似乎 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(目标);
}