简体   繁体   中英

I need to get a PDF to attach in gmailapp.sendemail without having the file ID

In my script here, Im trying to get a newly generated PDF to attach and email. Everything works great until I try to add that attachment to my email at the end.

function mtnPdfExport() {
     
  var ss = SpreadsheetApp.getActive();
  var sheets = ss.getSheets();
  var sheet = ss.getSheetByName("MTN")
  var exportNameMtn = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("X").getRange("BH11").getValue();

     for (var i = 0; i < sheets.length; i++) {
    if (sheets[i].getSheetName() !== "MTN") {
      sheets[i].hideSheet()
    }
  }
  var newFile = DriveApp.createFile(ss.getBlob());
  for (var i = 0; i < sheets.length; i++) {
    if (sheets[i].getSheetName() !== "MTN" && sheets[i].getSheetName() !== "CB2" && sheets[i].getSheetName() !== "X") 
    sheets[i].showSheet()
  }

  newFile.setName(nameMtnSheet());
  newFile.moveTo(DriveApp.getFolderById("1JFOod0Su8GwcPayntejRWpjCSwoHVWhy")); 
  
 let attachPdf = DriveApp.getFolderById("1JFOod0Su8GwcPayntejRWpjCSwoHVWhy").getFilesByName(nameMtnSheet);
 
 GmailApp.sendEmail("leorion20@gmail.com","Mtnland customer job sheet","Hi guys attached is a new customer account, thanks!", {
attachments: [attachPdf]});

}

function nameMtnSheet() {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetX = ss.getSheetByName("X");
  var mtnExportName = sheetX.getRange("BH11").getValue();
  return mtnExportName;

}

Try this:

function mtnPdfExport() {
  var ss = SpreadsheetApp.getActive();
  var shts = ss.getSheets();
  var sh = ss.getSheetByName("MTN")
  for (var i = 0; i < shts.length; i++) {
    if (shts[i].getSheetName() !== "MTN") {
      shts[i].hideSheet()
    }
  }
  var newFile = DriveApp.createFile(ss.getBlob());
  for (var i = 0; i < shts.length; i++) {
    if (shts[i].getSheetName() !== "MTN" && shts[i].getName() !== "CB2" && shts[i].getName() !== "X")
      shts[i].showSheet()
  }
  newFile.setName(nameMtnSheet());
  newFile.moveTo(DriveApp.getFolderById("1JFOod0Su8GwcPayntejRWpjCSwoHVWhy"));
  let attachPdf = [];
  let files = DriveApp.getFolderById("1JFOod0Su8GwcPayntejRWpjCSwoHVWhy").getFilesByName(nameMtnSheet);
  while(files.hasNext()) {
    let f = files.next();
    attachPdf.push(f);
  }
  GmailApp.sendEmail("leorion20@gmail.com", "Mtnland customer job sheet", "Hi guys attached is a new customer account, thanks!", {attachments:attachPdf});
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM