Ressources Google Apps Script
Tuto 1 : mettre à jour un document à l’ouverture : ajuster la date du jour
Apprenons à lancer une fonction JavaScript à l’ouverture d’un document
Les scripts Google peuvent s'intégrer au sein du document ou être indépendant d'un document donné, par exemple pour pouvoir traiter des documents en lot. Cette option est dite « standalone », certaines fonctionnalités sont incompatibles avec cette manière de sauvegarder les scripts. Par exemple vous ne pourrez pas profiter de la fonction onOpen() qui déclenche des actions à l'ouverture du document.
Nous allons commencer par développer autour de cette fonction de base pour ce tutoriel.
On peut enregistrer des scripts dans un document ou créer un fichier de script indépendant selon l'utilisation
Accéder à l'interface de programmation Apps Script
Nous allons créer un document texte dans notre Google Drive et l'ouvrir.Pour afficher l'interface de programmation, vous devez vous rendre dans le menu Extensions de la barre latéral et cliquer « Apps Script ».
L’environement de travail s'ouvre avec à gauche la zone qui affichera la liste des fichiers et à droite le code.Première fonction
Nous allons écrire notre code. Afin de lancer notre code automatiquement à l'ouverture du document, nous placerons un appel à notre fonction dans la fonction onOpen() fournie par Google. Cette fonction est lancée à l'ouverture du document. Pour ce premier développement nous mettrons à jour simplement la date du jour.Comme suit :
onOpen(){
//Actualiser la date
actualiserDate();
}
Pour les besoins du tutoriel nous simulerons la rédaction d'un courrier type où nous mettrons à jour la date à chaque ouverture du document. Pratique pour toujours générer des documents à la date du jour.
Je vous donne le texte générique à rendre dynamique :
Vila le {date_du_jour}
Objet : demande d’information
Madame, Monsieur,
nous faisons suite à votre demande d'accès au dernier conseil municipal.
Veuillez trouver le dernier compte rendu du conseil municipal joint à ce courrier.br>
Bien à vous,
Secrétariat de mairie de Vila
L'idée ici est d'automatiser l'actualisation de la date du courrier pour faire gagner du temps au secrétariat quand un modèle de courrier est utilisé.
Voyons comment procéder :
Nous créerons une fonction actualiserDate() qui sera elle-même lancée par la fonction onOpen() soit à l'ouverture du document.
Déroulé : nous devons créer le formatage de la date du jour puis chercher la chaîne de caractères {date_du_jour} afin de la remplacer par la date écrite en toute lettre.
actualiserDate(){
//Créer la date actuelle via Intl en JavaScript
let jour = new Date();
let dateFormatee = new Intl.DateTimeFormat("fr-FR", {dateStyle: "full"}).format(jour);
//Chercher et remplacer l’étiquette {date_du_jour}
}
Afin de poursuivre le développement de la fonction il faut vous présenter la manière de manipuler les données d'un document.
Étant donné que nous plaçons le code au sein du document nous pouvons utiliser la fonction Google Apps Script de base .getActiveDocument pour sélectionner le document actuel. Il nous faut cibler le corps du document comme suit :
let body = DocumentApp.getActiveDocument().getBody();
Une fois fait, nous devons utiliser la fonction : .replaceText()
La fonction prend deux paramètres : le texte à chercher et celui à insérer à la place. Ici nous voulons subtituer {date_du_jour} par la valeur que nous avons créée.
À retenir :
pour manipuler le document qui héberge le code on utilise DocumentApp.getActiveDocument() autrement il faut récupérer le document via DocumentApp.openById() qui prend en paramètre l'identifiant du document que l'on retrouve dans l'URL
Code final
Voici la fonction complète :
actualiserDate(){
//Créer la date actuelle en toute lettres en français via le composant Intl
let dateActuelle = new Date();
let dateFormatee = new Intl.DateTimeFormat("fr-FR", {dateStyle: "full"}).format(dateActuelle);
//Chercher et remplacer l’étiquette {date_du_jour}
let body = DocumentApp.getActiveDocument().getBody();
body.replaceText("{date_du_jour}", dateFormatee);
}
Cliquer la disquette pour enregistrer au besoin puis retourner à l'onglet du document contenant le texte et actualisez la page. La date sera mise à jour.
Nous avons appris :
- à lancer des fonctions à l’ouverture d’un document
- cibler et manipuler le contenu d’un document
- remplacer dynamiquement un élément textuel