Сценарий приложения для поиска новых или уникальных данных между двумя таблицами Google (как добавить) - PullRequest
0 голосов
/ 07 мая 2018

Я изменил скрипт из Удаление дублирующихся строк в электронной таблице Учебное пособие по Службам Google, чтобы сравнивать данные в заданном диапазоне между двумя листами (SRC и DEST). Затем уникальные данные записываются на лист DEST. Кажется, это работает, однако новые (уникальные) данные, найденные на SRC, перезаписывают текущие данные на листе DEST (начиная с первой строки), и мне нужно, чтобы они были добавлены в конце. Каков наилучший способ сделать это?

Вот таблица

А вот и сценарий:

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 голосов
/ 07 мая 2018

вместо

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 возвращает номер строки первой пустой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...