Auto Remplir un Google Doc à partir d’une Soumission de Formulaire Google

Video how to make a google form populate a google sheet

Copier les données de Google Sheets

Ça fait un moment que je n’ai pas écrit sur Google Apps Script, alors j’ai décidé de me pencher sur certaines fonctionnalités du monde d’Apps Script qui me sont nouvelles.

Quand j’ai commencé avec Apps Script il y a près de 6 ans, il y avait beaucoup de choses que je voulais faire, mais je n’avais pas encore les compétences pour les réaliser, ou j’ai rencontré des limitations de la plateforme Apps Script. Maintenant qu’Apps Script a mûri, il est temps de revisiter certains de ces premiers désirs.

Dans ce tutoriel, nous allons examiner un flux de travail qui devrait être très utile pour les lecteurs de ce site. Nous allons prendre une soumission de formulaire Google et utiliser ces données pour remplir un modèle personnalisé dans Google Docs.

Préparation de notre formulaire Google

Pour commencer, nous devons créer un formulaire Google pour accepter les soumissions ainsi qu’un document Google qui servira de modèle.

Dans cet exemple, j’ai simplement créé un formulaire basique pour collecter des données qui ressemblent à cela :

[Insérer une image du formulaire ici]

Comme vous pouvez le voir, rien de spectaculaire ici. J’ai créé une feuille de calcul pour stocker les réponses, car c’est là où notre code sera exécuté pour générer le document Google.

Création d’un modèle de Document Google

Après avoir créé le formulaire et la feuille de calcul, j’ai créé un document Google dans le même dossier qui servira de modèle. Chaque fois qu’un formulaire est soumis dans la feuille de calcul, notre script en fera une copie et remplacera certaines parties du texte par les données soumises dans le formulaire.

Comme vous pouvez le voir, il s’agit d’un document assez basique, mais puisque nous ne faisons qu’une copie, votre modèle peut inclure différents styles, images, etc. si vous le souhaitez.

Il y a quelques points importants à noter concernant ce modèle. Il existe plusieurs façons de remplir un Document Google à l’aide de Google Apps Script. L’une consiste à créer le document de manière programmatique à l’aide de code, c’est-à-dire que nous ajoutons les différents éléments du document un par un à l’aide d’un script.

Bien que cela soit possible, j’ai trouvé cela très difficile à faire, surtout lorsqu’il s’agit de créer un document avec une certaine sophistication ou un certain style.

L’autre façon consiste en la stratégie que nous adoptons ici. Nous créons un document qui fait office de modèle, puis nous recherchons certains morceaux de texte dans le document modèle et nous les remplaçons par les données en direct lorsque notre formulaire est soumis.

Bonnes pratiques pour les balises de modèle dans Google Docs

Cependant, comme nous devons rechercher tout le texte dans le document pour le remplacer, il est préférable de rendre le texte que vous souhaitez remplacer unique dans le document. Pour cela, vous devez utiliser ce qui est connu dans le monde du développement web comme des balises de remplacement. Dans l’exemple ci-dessus, j’ai entouré les noms des champs que je veux remplacer de doubles accolades comme ceci {{Champ à remplacer}}.

Bien que cela ne soit qu’une possibilité, il en existe quelques autres qui sont couramment utilisées :

{{Champ à remplacer}}
%Champ à remplacer%

[[Champ à remplacer]]

En fin de compte, l’essentiel est de créer une balise unique que nous pourrons retrouver plus tard. L’utilisation d’un caractère comme des crochets permet de faciliter cette recherche, car deux accolades sont un motif peu probable à trouver ailleurs.

Une autre bonne pratique ici, juste pour votre propre santé mentale, serait de vous assurer que le texte à l’intérieur de vos crochets correspond à l’en-tête dans la feuille de calcul.

Utilisation du code pour remplir un Document Google

Maintenant que tout est en place, nous pouvons examiner le code qui permettra de faire tout cela. Pour ceux qui ne sont pas familiers avec la façon de rédiger un fichier de projet basique Google Apps Script, vous voudrez peut-être consulter un article précédent où je détaille le processus de A à Z.

Pour ce tutoriel, je suppose que tout le monde sait comment ouvrir Outils > Éditeur de scripts pour modifier un fichier de script et définir un déclencheur de soumission de formulaire sur un script particulier.

Le code ci-dessous est assez bien commenté pour montrer l’intention de chaque ligne, donc je n’en répéterai pas beaucoup ici :

function autoFillGoogleDocFromForm(e) {
  // e.values est un tableau de valeurs de formulaire
  var timestamp = e.values[0];
  var firstName = e.values[1];
  var lastName = e.values[2];
  var title = e.values[3];

  // file est le fichier modèle, et on l'obtient par son ID
  var file = DriveApp.getFileById('your_file_id_here');

  // Nous pouvons faire une copie du modèle, lui donner un nom et éventuellement lui indiquer dans quel dossier il doit résider
  // file.makeCopy renverra un objet fichier Google Drive
  var folder = DriveApp.getFolderById('your_folder_id_here');
  var copy = file.makeCopy(lastName + ',' + firstName, folder);

  // Une fois que nous avons créé le nouveau fichier, nous devons l'ouvrir en tant que document en utilisant son ID
  var doc = DocumentApp.openById(copy.getId());

  // Puisque tout ce que nous devons changer se trouve dans le corps, nous devons le récupérer
  var body = doc.getBody();

  // Ensuite, nous appelons toutes nos méthodes replaceText
  body.replaceText('{{First Name}}', firstName);
  body.replaceText('{{Last Name}}', lastName);
  body.replaceText('{{Title}}', title);

  // Enfin, nous enregistrons et fermons le document pour conserver nos modifications
  doc.saveAndClose();
}

Quelques points à noter sur ce projet, myFunction est ce qui est appelé lorsque le déclencheur de soumission de formulaire est activé, et il transmet les valeurs du formulaire en paramètre ‘e’ à la fonction. Ce script utilise à la fois les classes DriveApp et DocumentApp de Google Apps Script, alors faites attention lorsque vous écrivez votre propre version pour faire la distinction entre ce qui est un fichier Google Drive et ce qui est un document Google.

Configuration d’un déclencheur pour une soumission de formulaire

Maintenant que nous avons tous les scripts et ressources Drive en place, nous devons ajouter un déclencheur à notre projet pour que le script s’exécute chaque fois qu’un formulaire est soumis. Pour ce faire, nous pouvons accéder au menu « Modifier » dans l’éditeur de scripts, puis cliquer sur l’option « Déclencheurs actuels du projet ».

L’éditeur de déclencheurs s’ouvrira dans une nouvelle fenêtre et nous montrera tous les déclencheurs associés à un projet s’il y en a. Pour ajouter un déclencheur, cliquez sur le bouton « Ajouter un déclencheur » en bas à droite de l’écran, ce qui ouvrira un menu modal avec des options pour configurer le déclencheur.

Tout d’abord, nous voulons choisir la fonction qui sera déclenchée, dans ce cas « autoFillGoogleDocFromForm » sera sélectionnée. Nous pouvons laisser le déploiement « Principal », à moins que vous ne sachiez ce que vous faites ici. Ensuite, nous voulons sélectionner « Depuis une feuille de calcul » comme source d’événement et le type d’événement « Lors de la soumission du formulaire ». Tous ces paramètres garantissent que les bonnes données sont transmises à notre script lorsqu’il est déclenché.

Le dernier paramètre, qui est une recommandation facultative, détermine à quelle fréquence vous êtes averti des erreurs. Ma recommandation est de le régler sur une notification immédiate. Une fois que vous avez réglé cela, vous pouvez cliquer sur Enregistrer et notre déclencheur sera actif. Vous pouvez essayer en soumettant un formulaire de test.

Conclusion

Il m’a fallu un certain temps pour comprendre cette différence, mais on peut la résumer ainsi : tous les documents Google sont des fichiers Drive, mais tous les fichiers Drive ne sont pas des documents Google. Google Drive contrôle des aspects du fichier, comme son emplacement, les personnes qui y ont accès et la façon dont nous le téléchargeons, mais pour apporter des modifications à un fichier qui est un document Google, nous devons l’exploiter à l’aide de la classe DocumentApp.

Après avoir soumis notre formulaire de test, nous obtenons un document Google dans le dossier que nous avons spécifié qui ressemble à cela :

[Insérer une capture d’écran du document ici]

Bien que cet exemple soit assez simple, je prévois de nombreux cas d’utilisation pour un flux de travail comme celui-ci, de la création de certificats à la saisie de factures ou de bons de commande, cela devrait être un autre outil utile à avoir dans votre boîte à outils Google Apps Script.

Après plus de 100 commentaires sur cet article et d’autres sur YouTube, j’ai créé quelques tutoriels qui développent des fonctionnalités que certaines personnes peuvent souhaiter utiliser :

  • Auto Remplir un Modèle de Document Google à partir des Données de Google Sheets

Ce tutoriel ressemble beaucoup à l’utilisation d’un formulaire Google pour déclencher l’automatisation, mais au lieu de cela, nous exécutons l’automatisation à partir d’un élément de menu et nous extrayons les données d’une feuille de calcul Google existante. Nous écrivons également l’URL du document créé dans la feuille de calcul.

Questions fréquemment posées

  • Remplacer du texte par un lien cliquable

De nombreuses personnes ont demandé comment elles peuvent remplacer le texte dans leurs modèles de document Google par un lien cliquable. Le tutoriel lié ci-dessus montre comment vous pouvez modifier ce script pour insérer des liens dans vos modèles.

Crawlan.com

Articles en lien