Отправить Google лист в формате PDF после его редактирования - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь отправить лист google по электронной почте в формате pdf, используя скрипт script.existing, который у меня работает, работает отличноно проблема в том, что перед отправкой скрипт будет редактировать лист, а при отправке в формате PDF эти изменения не сохраняются.кто-нибудь может мне помочь?

function sendSheetToPdfwithA1MailAdress(){ 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheets()[0]; 
  var shName = sh.getName()

  sh.getRange("C5:G28").setValue("LLL");


  Utilities.sleep(5000)
  sendSpreadsheetToPdf(0, shName, "*********@gmail.com","test mail ", "Test!");
}
function sendSpreadsheetToPdf(sheetNumber, pdfName, email,subject, htmlbody) {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId()  
  var sheetId = sheetNumber ? spreadsheet.getSheets()[sheetNumber].getSheetId() : null;  
  var url_base = spreadsheet.getUrl().replace(/edit$/,'');

  var url_ext = 'export?exportFormat=pdf&format=pdf'   

     + (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId)) 

     + '&size=A4'      
     + '&portrait=true'    
     + '&fitw=true'        
     + '&sheetnames=true&printtitle=false&pagenumbers=true'  
     + '&gridlines=false'  
     + '&fzr=false';       
 var options = {
   headers: {
  'Authorization': 'Bearer ' +  ScriptApp.getOAuthToken(),
  }
 }

 var response = UrlFetchApp.fetch(url_base + url_ext, options);
 var blob = response.getBlob().setName(pdfName + '.pdf');
 if (email) {
   var mailOptions = {
     attachments:blob, htmlBody:htmlbody
   }
MailApp.sendEmail(
  email, 
  subject+" (" + pdfName +")", 
  "html content only", 
  mailOptions);

}
  }

1 Ответ

0 голосов
/ 03 февраля 2019

Добавить SpreadsheetApp.flush(); перед вызовом spreadsheetToPdf

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