[英]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));
}
Question:问题:
Many thanks.非常感谢。
If you want to copy the formatting as well then copy the entire sheet/tab and then use copyTo() to copy the range and then delete the copied sheet.如果您还想复制格式,请复制整个工作表/选项卡,然后使用 copyTo() 复制范围,然后删除复制的工作表。 Or if you just want the data use getValues() and setValues();
或者,如果您只想要数据使用 getValues() 和 setValues();
This is part of the problem:这是问题的一部分:
var SCPM_Input = ss.getSheetByName("Report")[0];
because the index zero at the end should not be there and you cannot have sheet.getLastRow() + 1 number of rows in a sheet as shown in the next row.因为最后的索引零不应该在那里,并且您不能在工作表中有 sheet.getLastRow() + 1 行数,如下一行所示。
SCPM_Input.getRange(("A2:T").copyTo(history_Input.getRange(blankRow+1,1,blankRow+1,20));
And copyTo doesn't work between spreadsheets.并且 copyTo 在电子表格之间不起作用。
There is an update: Since the database will be used by multiple users.有一个更新:由于数据库将被多个用户使用。 I set up a standalone database.
我建立了一个独立的数据库。 I copied my "Report" sheet from spreadsheet 1 to spreadsheet 2. It will create a sheet "copy of Report".I rename, copied to Database sheet and delete it.
我将我的“报告”表从电子表格 1 复制到电子表格 2。它将创建一个“报告副本”表。我重命名,复制到数据库表并删除它。
Feel free to discuss if there is an easier way to do it.随意讨论是否有更简单的方法来做到这一点。 Thanks.
谢谢。
// transfer the report to DataBase Spreadsheet // 将报告传输到数据库电子表格
function transferDataToDataBase(){函数 transferDataToDataBase(){
var ss = SpreadsheetApp.getActiveSpreadsheet(); var ss = SpreadsheetApp.getActiveSpreadsheet();
var db = SpreadsheetApp.openById('spreadsheet ID') var db = SpreadsheetApp.openById('电子表格 ID')
var scpm_Input = ss.getSheetByName("Report"); var scpm_Input = ss.getSheetByName("报告");
scpm_Input.copyTo(db); scpm_Input.copyTo(db);
Utilities.sleep(3000);实用程序.sleep(3000);
db.getSheetByName('copy of report').setName('Import') db.getSheetByName('报告副本').setName('导入')
var history_Input = db.getSheetByName('Database'); var history_Input = db.getSheetByName('Database');
var blankRow = history_Input.getLastRow(); var blankRow = history_Input.getLastRow();
var target = db.getSheetByName('Import'); var target = db.getSheetByName('Import');
target.getRange("A2:T").copyTo(history_Input.getRange(blankRow+1,1,blankRow+1,20)); 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") //update the date and time history_Input.getRange(blankRow+1,21).setValue(new Date()).setNumberFormat("yyyy-mm-dd h:mm") //更新日期和时间
db.deleteSheet(target); db.deleteSheet(目标);
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.