我有一个电子表格" X"我将每天一次从第2行备份到表单末尾的数据收集到另一个现有的电子表格中#34; Y"将它追加到最后。我也想删除电子表格中的现有条目" X"从第2行开始。基本上是电子表格" X"将是累积的电子表格,并考虑我的备份。我的电子表格做的最多,除了它添加到电子表格的顶部" Y",它没有附加,它只是覆盖,所以我看着CopyTo或AppendRow函数,并希望一些人建议如何纠正。
function myFunction() {
function getDate(){
var d = new Date();
var dateofDay = new Date(d.getTime());
return Utilities.formatDate(dateofDay, "GMT+2", "MM-dd-yyyy hh:mmm:ss z");
}
//get the date from current Spreadsheet
var ss = SpreadsheetApp.getActiveSheet();
var dataRange = ss.getRange(1, 1, ss.getLastRow(), ss.getLastColumn());
var myData = dataRange.getValues();
//Open new Spreadsheet & paste the data
newSS = SpreadsheetApp.openById("abcdefg");
newSS.getActiveSheet().getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).setValues(myData);
//Clear the original sheet except header row
ss.deleteRows(2, ss.getLastRow()-1);
}
答案 0 :(得分:1)
请插入以下代码
newSS.getActiveSheet().insertRows(1, myData.length);
在此之前:
newSS.getActiveSheet().getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).setValues(myData);
希望能帮到你。
答案 1 :(得分:0)
这是因为在第二个电子表格中,您要在此代码行中设置范围[1,1]到[lastrow,lastcolumn]的值。
newSS.getActiveSheet().getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).setValues(myData);
相反,您必须取该表的最后一行并从lastrow + 1添加行。
有关更多参考检查here。希望有所帮助!
答案 2 :(得分:0)
只需将源电子表格的范围更改为
即可 var dataRange = ss.getRange(2, 1, ss.getLastRow(), ss.getLastColumn());
然后将目标电子表格的范围更改为
newSS.getActiveSheet().getRange(newSS.getLastRow()+1, 1, ss.getLastRow(), ss.getLastColumn()).setValues(myData);
这是工作代码
function myFunction() {
function getDate(){
var d = new Date();
var dateofDay = new Date(d.getTime());
return Utilities.formatDate(dateofDay, "GMT+2", "MM-dd-yyyy hh:mmm:ss z");
}
//get the date from current Spreadsheet
var ss = SpreadsheetApp.getActiveSheet();
var dataRange = ss.getRange(2, 1, ss.getLastRow(), ss.getLastColumn());
var myData = dataRange.getValues();
//Open new Spreadsheet & paste the data
newSS = SpreadsheetApp.openById("1Y2KsVsNaq_-3FvFhx1J8ac5uthl4Wk0kg9hKkVp-Q8Y");
Logger.log(newSS.getLastRow());
newSS.getActiveSheet().getRange(newSS.getLastRow()+1, 1, ss.getLastRow(), ss.getLastColumn()).setValues(myData);
//Clear the original sheet except header row
ss.deleteRows(2, ss.getLastRow()-1);
}