PDF создан, но ячейки пусты - PullRequest
       15

PDF создан, но ячейки пусты

1 голос
/ 09 октября 2019

ГАЗ генерирует PDF-файл, который отправляется по электронной почте, хотя ячейки пустые.

Ячейки содержат формулы.

Я понятия не имею, где искать или что изменять.

function emailAsPDF() {
  var emailAddress=Session.getActiveUser().getEmail();
  var mess="Voulez-vous envoyer votre rapport  à l'adresse : " + emailAddress;
  var ans= Browser.msgBox("Courriel", mess, Browser.Buttons.YES_NO);
  if (ans===Browser.Buttons.NO){return;}
  var mess="Votre rapport a été envoyé à l'adresse : " + emailAddress;
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sheet=ss.getSheetByName("Recherche");
  //var range = sheet.getActiveCell();
  var CandidateName=ss.getRangeByName("Nom.Candidat").getValue();
  var emailSubject="Vérifications pré-emploi complétées" +" - "+ CandidateName;
  var emailMessage="Bonjour," + "\n\n" + "J’ai le plaisir de vous informer que les vérifications sont complétées pour le candidat indiqué au tableau de résultats pré-emploi suivant:" + "\n\n" + "Bonne journée !";
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();//.getSheetByName("Formation");
  var sheet=spreadsheet.getSheetByName("Recherche");
  var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export");
  sheet.copyTo(newSpreadsheet);
  var sheetNames=newSpreadsheet.getSheets();
  newSpreadsheet.deleteActiveSheet();
  var blob = newSpreadsheet.getAs('application/pdf');
  var folderID = parentFolder(); // Folder id to save the PDF
  Logger.log(folderID);
  var folder = DriveApp.getFolderById(folderID);
  var pdfName = spreadsheet.getName() + " - " + CandidateName + '.pdf';
  var pdfFile = folder.createFile(blob).setName(pdfName);
  MailApp.sendEmail(emailAddress, emailSubject, emailMessage,{attachments:[pdfFile]});
  //DriveApp.getFileById(pdfFile.getId()).setTrashed(true);
  DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(true);  
  DriveApp.getFileById(pdfFile.getId()).setTrashed(true);
  Browser.msgBox("Courriel", mess, Browser.Buttons.OK); 
}


function parentFolder() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var file = DriveApp.getFileById(ss.getId()); 
  var ParentFolder= file.getParents();
  while ( ParentFolder.hasNext() ) {
    var folder = ParentFolder.next();
    folderID=folder.getId();
     Logger.log(folderID);
  }
  return folderID;
}

function test() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var file = DriveApp.getFileById(ss.getId()); 
  var ParentFolder= file.getParents();
  var folder = ParentFolder.next();
   Logger.log(folder);
//  while ( ParentFolder.hasNext() ) {
//    var folder = ParentFolder.next();
//    folderID=folder.getId();
//     Logger.log(folderID);
//  }
//  return folderID;
}

Я ожидаю, что отчет покажет информацию, содержащуюся в ячейках. Ниже приведены скриншоты буксировки: Просмотр таблицы Результат документа PDF

1 Ответ

2 голосов
/ 10 октября 2019

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

function emailAsPDF() {
  var emailAddress=Session.getActiveUser().getEmail();
  var mess="Voulez-vous envoyer votre rapport  à l'adresse : " + emailAddress;
  var ans= Browser.msgBox("Courriel", mess, Browser.Buttons.YES_NO);
  if (ans===Browser.Buttons.NO){return;}
  var mess="Votre rapport a été envoyé à l'adresse : " + emailAddress;
  var ss=SpreadsheetApp.getActive();
  var sheet=ss.getSheetByName("Recherche");
  var CandidateName=ss.getRangeByName("Nom.Candidat").getValue();
  var emailSubject="Vérifications pré-emploi complétées" +" - "+ CandidateName;
  var emailMessage="Bonjour," + "\n\n" + "J’ai le plaisir de vous informer que les vérifications sont complétées pour le candidat indiqué au tableau de résultats pré-emploi suivant:" + "\n\n" + "Bonne journée !";
  var shts=ss.getSheets();
  var hdnA=[];
  shts.forEach(function(sht){if(sht.getName()!="Recherche") {sht.hideSheet();hdnA.push(sht.getName());}})
  var blob = ss.getAs('application/pdf');
  var file=DriveApp.getFileById(ss.getId());
  var folder=file.getParents().next();
  var pdfName = ss.getName() + " - " + CandidateName + '.pdf';
  var pdfFile = folder.createFile(blob).setName(pdfName);
  MailApp.sendEmail(emailAddress, emailSubject, emailMessage,{attachments:[pdfFile]});
  DriveApp.getFileById(pdfFile.getId()).setTrashed(true);
  hdnA.forEach(function(name){ss.getSheetByName(name).showSheet();})
  Browser.msgBox("Courriel", mess, Browser.Buttons.OK); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...