Pregunta

Someone please help me out, i have been all over the internet trying to find scripts on converting the current spreadsheet into pdf and mailing it. I'm pretty sure this one worked for me the other day bu now when i use it it has been saying:

We're sorry, no servers are currently available. Please wait a bit and try again. (line 32, file "emailv1")

here is the code:

        function onOpen() {
          var submenu = [{name:"Send Status", functionName:"exportSomeSheets"}];
          SpreadsheetApp.getActiveSpreadsheet().addMenu('Project Admin', submenu);  
        }

        function exportSomeSheets() {
          var originalSpreadsheet = SpreadsheetApp.getActive();
          var message = "Please see attached";

          var projectname = originalSpreadsheet.getRange("A1:A1").getValues(); 

          var period = originalSpreadsheet.getRange("B1:B1").getValues();


          var subject = projectname + " - Weekly Status Sheet - " + period;


          var contacts = originalSpreadsheet.getSheetByName("Contacts");
          var numRows = contacts.getLastRow();
          var emailTo = contacts.getRange(2, 2, numRows, 1).getValues();


          var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export");
          var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
          var projectname = SpreadsheetApp.getActiveSpreadsheet();
          sheet = originalSpreadsheet.getActiveSheet();
          sheet.copyTo(newSpreadsheet);


          // Make zee PDF, currently called "Weekly status.pdf"
          // When I'm smart, filename will include a date and project name
          var pdf = DocsList.getFileById(newSpreadsheet.getId()).getAs('application/pdf').getBytes();
          var attach = {fileName:'Weekly Status.pdf',content:pdf, mimeType:'application/pdf'};

          // Send the freshly constructed email 
          MailApp.sendEmail(emailTo, subject, message, {attachments:[attach]});

          // Delete the wasted sheet we created, so our Drive stays tidy.
          DocsList.getFileById(newSpreadsheet.getId()).setTrashed(true);  
        }
¿Fue útil?

Solución

Maybe this code can help you .

function toPdf(id){
 SpreadsheetApp.flush();
// var ssDoc = DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId());
  var ssDoc = DriveApp.getFileById(id);
 var pdf = DriveApp.createFile(ssDoc.getAs(MimeType.PDF));
  return pdf.getBlob().getBytes();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top