Скрипт Google Sheets удаляет диапазон листов после передачи на основе filterLogic - PullRequest
0 голосов
/ 09 марта 2020

У меня есть два листа, 1. sourceData 2. Готово sourceData имеет один столбец, который либо помечен как «АКТИВНЫЙ», либо является значением «Дата». Я хочу переместить эти строки со столбцом, помеченным как ACTIVE, на другой лист, который называется DONE. Я написал здесь скрипт, который работает с передачей данных, но строки из таблицы «ACTIVE» будут переноситься снова и снова, если я запусту этот скрипт по расписанию. Есть ли способ удалить строки после их переноса? или изменить значение ячейки 'ACTIVE' на что-то другое, чтобы оно не сработало filterLogi c? Любая помощь приветствуется, спасибо!

function tsfActive() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var pr = ss.getSheetByName("sourceData");
  var ts = ss.getSheetByName("DONE");
  var originalData = pr.getRange(2,1,pr.getLastRow()-1,3).getValues();  
  var data = originalData.filter(filterLogic);
    Logger.log(data);
  ts.getRange(ts.getLastRow()+1,1,data.length,3).setValues(data);
}
  var filterLogic = function(item){    
    if(item[1] === "ACTIVE"){
      return true;
    }
    else{
      return false;
    }
  }

1 Ответ

1 голос
/ 10 марта 2020

Я думаю, что это делает:

function tsfActive() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var pr = ss.getSheetByName("sourceData");
  var ts = ss.getSheetByName("DONE");
  var od = pr.getRange(2,1,pr.getLastRow()-1,3).getValues();  
  var data=od.map(function(r){return r;}).filter(function(r){return r[1]=='ACTIVE'});
  Logger.log(data);
  ts.getRange(ts.getLastRow()+1,1,data.length,3).setValues(data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...