Envoyer par email un onglet d'une feuille de calcul

L'intérêt pour le script est toujours présent chez nos collègues utilisateurs de Google Sheets. 

Aujourd'hui, la demande est assez simple : envoyer par email un onglet précis d'une feuille de calcul. 


Je vous propose ici un exemple de code pour vous permettre de démarrer. Ce code propose d'envoyer par email la feuille active de votre classeur en utilisant l'email placé dans la cellule A1.

function envoiEmailFeuilleEnPDF() { var classeur = SpreadsheetApp.getActiveSpreadsheet(); var feuille = classeur.getActiveSheet(); // Envoi la feuille active //var feuille = classeur.getSheetByName(nomdelafeuille); // Envoi la feuille dont le nom est indiquée var email = feuille.getRange('A1').getValue(); var sujet = "E-mail de test avec l'adresse dans la cellule A1 "; // A modifier var corpsDuMail = "Voilà !"; // A modifier var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", classeur.getId()); var url_ext = 'exportFormat=pdf&format=pdf' // export en pdf / csv / xls / xlsx + '&size=A4' // Taille papier A4 + '&portrait=true' // orientation, false pour paysage + '&fitw=true&source=labnol' // adapter à la largeur de la page, false pour la taille réelle + '&sheetnames=false&printtitle=false' // masquer les en-têtes et pieds de page + '&pagenumbers=false&gridlines=false' // masquer les numéros de page et le quadrillage + '&fzr=false' // ne pas répéter les en-têtes de ligne (lignes figées) sur chaque page + '&gid='; // l'ID de la feuille var token = ScriptApp.getOAuthToken(); var response = UrlFetchApp.fetch(url + url_ext + feuille.getSheetId(), { headers : { 'Authorization' : 'Bearer ' + token } }).getBlob().setName(feuille.getName() + ".pdf"); if (MailApp.getRemainingDailyQuota() > 0) GmailApp.sendEmail(email, sujet, corpsDuMail, { htmlBody : corpsDuMail, attachments : [response] }); }
Ensuite, il ne vous reste plus qu'à ajouter par exemple un menu pour pouvoir facilement lancer votre script. Il est possible aussi d'utiliser un déclencheur horaire.