Google Script импортирует данные на основе критериев фильтра - PullRequest
0 голосов
/ 25 февраля 2020

// Я пытаюсь импортировать данные для определенных c членов команды на основе статуса проекта. Код работает хорошо, если только потянуть на 1 вкладку, но не на все 12 вкладок. Кроме того, если бы вы могли дать представление о том, как сопоставлять заголовки столбцов, данные могут иногда изменяться от листа к листу. Данные будут при запуске и обновлении, но данные не должны перезаписывать данные, которые все еще соответствуют критериям, установленным в коде. Заранее спасибо за вашу помощь.

Лист данных: https://docs.google.com/spreadsheets/d/1X_NBWq1m9iBxvYXhy2wcttHanvPFPlAOJWgbbKbJimQ/edit#gid = 602022015

Целевой лист: https://docs.google.com/spreadsheets/d/1oFRs48JHCrH82msFkGrZ8iqDpyAdXww1e1EZYf6FRx8/edit#gid = 0

function myFunction() {
var sss = SpreadsheetApp.openById('1X_NBWq1m9iBxvYXhy2wcttHanvPFPlAOJWgbbKbJimQ'); //replace with source ID
var ss1 = sss.getSheetByName('January'); //replace with source Sheet tab name
  var ss = sss.getSheetByName('February');
    var ss2 = sss.getSheetByName('March');
  var ss3 = sss.getSheetByName('April');
  var ss4 = sss.getSheetByName('May');
  var ss5 = sss.getSheetByName('June');
  var ss6 = sss.getSheetByName('July');
  var ss7 = sss.getSheetByName('August');
  var ss8 = sss.getSheetByName('September');
  var ss9 = sss.getSheetByName('October');
  var ss10 = sss.getSheetByName('November');
  var ss11 = sss.getSheetByName('December');

var range = ss.getRange('A:Z');      //assign the range you want to copy
  var range = ss.getRange('A:Z');      //assign the range you want to copy
  var range1 = ss.getRange('A:Z');      //assign the range you want to copy
  var range2 = ss2.getRange('A:Z');      //assign the range you want to copy
  var range3 = ss3.getRange('A:Z');      //assign the range you want to copy
  var range4 = ss4.getRange('A:Z');      //assign the range you want to copy
  var range5 = ss5.getRange('A:Z');      //assign the range you want to copy
  var range6 = ss6.getRange('A:Z');      //assign the range you want to copy
  var range7 = ss7.getRange('A:Z');      //assign the range you want to copy
  var range8 = ss8.getRange('A:Z');      //assign the range you want to copy
  var range9 = ss9.getRange('A:Z');      //assign the range you want to copy
  var range10 = ss10.getRange('A:Z');      //assign the range you want to copy
  var range11 = ss11.getRange('A:Z');      //assign the range you want to copy
var rawData = range.getValues()     // get value from spreadsheet 1
var data = []                       // Filtered Data will be stored in this array
for (var i = 0; i< rawData.length ; i++){
if(rawData[i][1] == "Completed")    // Check to see if column 6 says completed if not skip it
  if(rawData[i][2] == "Bob")
{
data.push(rawData[i])
}
}

var tss = SpreadsheetApp.openById('1oFRs48JHCrH82msFkGrZ8iqDpyAdXww1e1EZYf6FRx8'); //replace with destination ID
var ts = tss.getSheetByName('Sheet1'); //destination Sheet tab name
ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data);

   var lastRow = ts.getLastRow();
  var numRows = range.length;
  var numCols = range[0].length;
  ts.getRange(lastRow+(lastRow > 0 ? 2 : 1), 1, numRows, numCols).setValues(SData1);

  lastRow = ts.getLastRow();
  numRows = range.length;
  numCols = range[0].length;
  ts.getRange(lastRow+2, 1, numRows, numCols).setValues(SData2); // instead of the row being 1 we use the lastRow variable to continue where it left off. I added +2 to put a space between each data section, this number can be changed to +1 to remove the space.

  lastRow = ts.getLastRow();
  numRows = range11.length;
  numCols = range11[0].length;
  ts.getRange(lastRow+2, 1, numRows, numCols).setValues(SData3);

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