L oop и экспортировать только одну вкладку - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть скрипт, который работает хорошо - он берет значение из списка (идентификатор сотрудника) и вставляет его на вкладку «Система показателей» - сценарий затем выводит все системы показателей сотрудников в формате .pdf. Единственная проблема, с которой я сталкиваюсь, это то, что скрипт экспортирует обе вкладки в .pdf, а не только в систему показателей ... есть мысли?

function loop() {
  var targetFolderId = "11rc9rFM25lnLArxm0yk588UEH5MD-NpR";
  var targetFolder = DriveApp.getFolderById(targetFolderId); 

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var validation_sheet = ss.getSheetByName('Performance_Scores');
  var lastRow = validation_sheet.getLastRow();
  var inputs = ss.getSheetByName('Performance_Scores').getRange('A2:A'+lastRow).getValues();
  var tab = ss.getSheetByName('Scorecard');

  //Loop
  for (var i = 0; i < inputs.length; i++) {
    tab.getRange('B2').setValue(inputs[i][0]);
    SpreadsheetApp.flush();
    Utilities.sleep(5000);

  //Print PDFs
  var name = tab.getRange(2, 2).getValue();
  targetFolder.createFile(ss.getAs('application/pdf')).setName(name);
  }
}

1 Ответ

1 голос
/ 28 апреля 2020

Попробуйте это:

function loop() {
  var targetFolder=DriveApp.getFolderById("11rc9rFM25lnLArxm0yk588UEH5MD-NpR"); 
  var ss=SpreadsheetApp.getActive();
  var validation_sheet=ss.getSheetByName('Performance_Scores').hideSheet();
  var inputs=validation_sheet.getRange(2,1,validation_sheet.getLastRow(),1).getValues();
  var tab=ss.getSheetByName('Scorecard').showSheet();
  for (var i=0; i < inputs.length; i++) {
    tab.getRange('B2').setValue(inputs[i][0]);
    SpreadsheetApp.flush();
    Utilities.sleep(5000);
    var name=tab.getRange(2, 2).getValue();
    targetFolder.createFile(ss.getAs('application/pdf')).setName(name);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...