Export Script PDF

Bonjour à tous,

Quand je fais un export script pdf dans un gsheet, l'export fonctionne bien sauf que je n'arrive pas à résoudre deux points d'amélioration :

- Le premier c'est qu'il exporte en PDF toutes les feuilles alors que je ne veux que la première

- Le deuxième c'est que le fichier généré ne tiens compte d'aucun format (par exemple mon format d'impression est en mode paysage mais l'export se fait en portrait)

Une idée ? voici ce que j'utilise

function sendReport() {
  var message = {
    to: "toto@gmail.com",
    subject: "RECAP",
    body: "Test \n\nTest",
    name: "Toto Toto",
    attachments: [SpreadsheetApp.getActiveSpreadsheet().getAs(MimeType.PDF).setName("Test")]
  }
  MailApp.sendEmail(message);
}

Bonjour,

voici un exemple d'exportation d'une feuille en mode paysage

mettre à jour l'id du dossier de sauvegarde

function creerFichierPDF() {
  DriveApp.getFiles();
  const docID = SpreadsheetApp.getActiveSpreadsheet().getId();
  const feuilleID = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getSheetId();
  const dossier = DriveApp.getFolderById('xxxxxxxxxxxxxxxxxxxxxxxxxxx')
  const fichier = 'test' + ".pdf"
  const url = 'https://docs.google.com/spreadsheets/d/' + docID + '/export?';
  const exportOptions =
    'exportFormat=pdf&format=pdf' +
    '&size=A4' +
    '&portrait=false' +                    // orientation portrait, false pour paysage
    '&fitw=false' +                        // pas d'ajustement en largeur
    '&sheetnames=false&printtitle=false' + // pas de nom ni de titre à l'impression
    '&pagenumbers=false&gridlines=false' + // pas de numérotation, pas de grille
    '&fzr=false' +                         // frozen rows = pas de répétition de l'en-tête
    '&gid=' + feuilleID;
  var params = { method: "GET", headers: { "authorization": "Bearer " + ScriptApp.getOAuthToken() } };
  var reponse = UrlFetchApp.fetch(url + exportOptions, params).getBlob();
  dossier.createFile(reponse.setName(fichier));
} 

si tu veux juste l'envoyer

function envoyerFichierPDF() {
  DriveApp.getFiles();
  const docID = SpreadsheetApp.getActiveSpreadsheet().getId();
  const feuilleID = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getSheetId();
  const fichier = 'test' + ".pdf"
  const url = 'https://docs.google.com/spreadsheets/d/' + docID + '/export?';
  const exportOptions =
    'exportFormat=pdf&format=pdf' +
    '&size=A4' +
    '&portrait=false' +                    // orientation portrait, false pour paysage
    '&fitw=false' +                        // pas d'ajustement en largeur
    '&sheetnames=false&printtitle=false' + // pas de nom ni de titre à l'impression
    '&pagenumbers=false&gridlines=false' + // pas de numérotation, pas de grille
    '&fzr=false' +                         // frozen rows = pas de répétition de l'en-tête
    '&gid=' + feuilleID;
  var params = { method: "GET", headers: { "authorization": "Bearer " + ScriptApp.getOAuthToken() } };
  var reponse = UrlFetchApp.fetch(url + exportOptions, params).getBlob();
      GmailApp.sendEmail('xxxxxxxxxxxxxxxx@gmail.com', 'fichier pdf', 'ci-joint ...', {
      htmlBody: 'ci-joint ...',
      attachments: [{
            fileName: fichier,
            content: reponse.getBytes(),
            mimeType: "application/pdf"
        }]
    });
} 

Nickel, franchement merci beaucoup

Rechercher des sujets similaires à "export script pdf"