用于在两个Google电子表格之间查找新数据或唯一数据的应用脚本(如何追加)

时间:2018-05-06 23:17:08

标签: google-apps-script google-sheets

我已经从删除电子表格中的重复行 Google Apps教程修改了脚本,以便比较两张纸之间给定范围内的数据(SRC和DEST) 。然后将唯一数据写入DEST表。它似乎有效,但SRC上的新(唯一)数据覆盖了DEST表上的当前数据(从第一行开始),我需要在最后添加它。什么是实现这一目标的最佳方式?

这里是Spreadsheet

以下是剧本:

function appendNEW() {
  // source spreadsheets
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var srcSheet = ss.getSheetByName("SRC");  
  //destination spreadsheet
  var destSheet = ss.getSheetByName("DEST");

  var srcData = srcSheet.getRange('A2:B').getValues();
  var destdData = destSheet.getRange('A2:B').getValues();

  var newData = new Array();


  for(i in srcData){
    var row = srcData[i];
    var duplicate = false;

    for(j in srcData){

        if(row[0] == destdData[j][0] && row[1] == destdData[j][1]){
  duplicate = true;

      }
    }
    if(!duplicate){
      newData.push(row);
    }
  }
  destSheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

}

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:2)

而不是

destSheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

destSheet.getRange(destSheet.getLastRow()+1, 1, newData.length, newData[0].length).setValues(newData);

以上是因为destSheet.getLastRow()+1返回第一个空白行的行号。