Service HTML: créer et diffuser du code HTML

Le service HTML vous permet de diffuser des pages Web pouvant interagir avec les fonctions Apps Script côté serveur. Elle est particulièrement utile pour créer des applications Web ou pour ajouter des interfaces utilisateur personnalisées dans Google Docs, Sheets et Forms. Vous pouvez même l'utiliser pour générer le corps d'un e-mail.

Créer des fichiers HTML

Pour ajouter un fichier HTML à votre projet Apps Script, procédez comme suit:

  1. Ouvrez l'éditeur Apps Script.
  2. À gauche, cliquez sur Ajouter un fichier > HTML.

Dans le fichier HTML, vous pouvez écrire la plupart des langages HTML, CSS et JavaScript côté client standards. La page sera diffusée au format HTML5, bien que certaines fonctionnalités avancées de ce langage ne soient pas disponibles, comme expliqué dans la section Restrictions.

Votre fichier peut également inclure des modèles de scriptlets traités sur le serveur avant que la page ne soit envoyée à l'utilisateur (comme pour PHP), comme expliqué dans la section sur le code HTML modélisé.

Diffuser du code HTML en tant qu'application Web

Pour créer une application Web avec le service HTML, votre code doit inclure une fonction doGet() qui indique au script comment diffuser la page. La fonction doit renvoyer un objet HtmlOutput, comme illustré dans cet exemple.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Hello, World!
  </body>
</html>

Une fois ce framework de base en place, il vous suffit d'enregistrer une version de votre script, puis de déployer votre script en tant qu'application Web.

Une fois le script déployé en tant qu'application Web, vous pouvez également l'intégrer à un site Google.

Diffuser du code HTML sous forme d'interface utilisateur Google Docs, Sheets, Slides ou Forms

Le service HTML peut afficher une boîte de dialogue ou une barre latérale dans Google Docs, Sheets, Slides ou Forms si votre script est lié au conteneur dans le fichier. Dans Google Forms, les interfaces utilisateur personnalisées ne sont visibles que par un éditeur qui ouvre le formulaire pour le modifier, et non par un utilisateur qui ouvre le formulaire pour y répondre.

Contrairement à une application Web, un script qui crée une interface utilisateur pour un document, une feuille de calcul ou un formulaire n'a pas besoin spécifiquement d'une fonction doGet(). Vous n'avez pas besoin d'enregistrer une version du script ni de le déployer. Au lieu de cela, la fonction qui ouvre l'interface utilisateur doit transmettre votre fichier HTML en tant qu'objet HtmlOutput aux méthodes showModalDialog()) ou showSidebar() de l'objet Ui du document, du formulaire ou de la feuille de calcul actifs.

Ces exemples incluent quelques fonctionnalités supplémentaires pour plus de commodité: la fonction onOpen() crée un menu personnalisé qui facilite l'ouverture de l'interface, et le bouton du fichier HTML appelle une méthode close() spéciale de l'API google.script.host pour la fermer.

Code.gs

// Use this code for Google Docs, Slides, Forms, or Sheets.
function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
      .createMenu('Dialog')
      .addItem('Open', 'openDialog')
      .addToUi();
}

function openDialog() {
  var html = HtmlService.createHtmlOutputFromFile('Index');
  SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
      .showModalDialog(html, 'Dialog title');
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Hello, World!
    <input type="button" value="Close"
        onclick="google.script.host.close()" />
  </body>
</html>

Notez que la première fois que vous souhaitez afficher cette interface utilisateur, vous devez exécuter la fonction onOpen() manuellement dans l'éditeur de script ou actualiser la fenêtre de l'éditeur Docs, Sheets ou Forms (ce qui entraînera la fermeture de l'éditeur de scripts). Ensuite, le menu personnalisé devrait apparaître après quelques secondes à chaque ouverture du fichier. Sélectionnez Dialog > Open (Boîte de dialogue > Ouvrir) pour afficher l'interface.