Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Le service HTML vous permet de diffuser des pages Web pouvant interagir avec des fonctions Apps Script côté serveur. Il est particulièrement utile pour créer des applications Web ou 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 :
Ouvrez l'éditeur Apps Script.
Sur la gauche, cliquez sur Ajouter un fichier add > HTML.
Dans le fichier HTML, vous pouvez écrire la plupart des codes HTML, CSS et JavaScript côté client standards. La page sera diffusée au format HTML5, mais certaines fonctionnalités avancées de HTML5 ne sont pas disponibles, comme expliqué dans Restrictions.
Votre fichier peut également inclure des scriptlets de modèle qui sont traités sur le serveur avant que la page ne soit envoyée à l'utilisateur (comme en PHP), comme expliqué dans la section sur le HTML basé sur des modèles.
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');
}
Diffuser du code HTML en tant qu'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 du 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 l'ouvre 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 d'une fonction doGet() spécifique. Vous n'avez pas non plus besoin d'enregistrer une version de votre 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 pour le document, le formulaire ou 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 fermer l'interface.
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');
}
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 recharger la fenêtre de l'éditeur Docs, Sheets ou Forms (ce qui fermera l'éditeur de script). Le menu personnalisé devrait ensuite s'afficher en quelques secondes chaque fois que vous ouvrirez le fichier. Sélectionnez Dialog > Open (Boîte de dialogue > Ouvrir) pour afficher l'interface.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/31 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/31 (UTC)."],[[["\u003cp\u003eThe HTML service allows you to create web pages that interact with Apps Script functions, enabling you to build web apps or add custom interfaces to Google Docs, Sheets, and Forms.\u003c/p\u003e\n"],["\u003cp\u003eYou can build HTML files within your Apps Script project using standard HTML, CSS, and client-side JavaScript, enhancing the functionality of your applications.\u003c/p\u003e\n"],["\u003cp\u003eDeploying your script as a web app allows external access, or it can be embedded in a Google Site for integration with your existing web presence.\u003c/p\u003e\n"],["\u003cp\u003eFor Google Docs, Sheets, Slides, or Forms, the HTML service enables the creation of custom dialogs or sidebars, providing interactive elements within these applications.\u003c/p\u003e\n"],["\u003cp\u003eContainer-bound scripts can display user interfaces using the HTML service by invoking \u003ccode\u003eshowModalDialog()\u003c/code\u003e or \u003ccode\u003eshowSidebar()\u003c/code\u003e methods, offering a tailored user experience.\u003c/p\u003e\n"]]],[],null,["# HTML Service: Create and Serve HTML\n\nThe [HTML service](/apps-script/reference/html) lets you serve web pages that\ncan interact with server-side Apps Script functions. It is particularly useful\nfor building web apps or adding custom user interfaces in Google Docs, Sheets,\nand Forms. You can even use it to generate the body of an email.\n\nCreate HTML files\n-----------------\n\nTo add an HTML file to your Apps Script project, follow these steps:\n\n1. Open the Apps Script editor.\n2. At the left, click Add a file add \\\u003e **HTML**.\n\nWithin the HTML file, you can write most standard HTML, CSS, and client-side\nJavaScript. The page will be served as HTML5, although some advanced features of\nHTML5 are not available, as explained in\n[Restrictions](/apps-script/guides/html/restrictions).\n\nYour file can also include template scriptlets that are processed on the server\nbefore the page is sent to the user --- similar to PHP --- as explained in the\nsection on [templated HTML](/apps-script/guides/html/templates).\n\nServe HTML as a web app\n-----------------------\n\nTo create a web app with the HTML service, your code must include a `doGet()`\nfunction that tells the script how to serve the page. The function must return\nan [`HtmlOutput`](/apps-script/reference/html/html-output) object, as shown in\nthis example. \n\n### Code.gs\n\n```html\nfunction doGet() {\n return HtmlService.createHtmlOutputFromFile('Index');\n}\n```\n\n### Index.html\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n \u003chead\u003e\n \u003cbase target=\"_top\"\u003e\n \u003c/head\u003e\n \u003cbody\u003e\n Hello, World!\n \u003c/body\u003e\n\u003c/html\u003e\n```\n\nOnce that basic framework is in place, all you have to do is\n[save a version of your script](/apps-script/guides/versions), then\n[deploy your script as a web app](/apps-script/execution_web_apps#deploying).\n\nAfter the script is deployed as a web app, you can also\n[embed it in a Google Site](/apps-script/guides/web#embed_your_web_app_in).\n\nServe HTML as a Google Docs, Sheets, Slides, or Forms user interface\n--------------------------------------------------------------------\n\nThe HTML service can display a [dialog or sidebar](/apps-script/guides/dialogs)\nin Google Docs, Sheets, Slides, or Forms if your script is\n[container-bound](/apps-script/guides/bound) to the file. (In Google Forms,\ncustom user interfaces are only visible to an editor who opens the form to\nmodify it, not to a user who opens the form to respond.)\n\nUnlike a web app, a script that creates a user interface for a document,\nspreadsheet, or form does not need a `doGet()` function specifically, and you do\nnot need to save a version of your script or deploy it. Instead, the function\nthat opens the user interface must pass your HTML file as an\n[`HtmlOutput`](/apps-script/reference/html/html-output) object to the\n`showModalDialog())` or `showSidebar()` methods of the\n[`Ui`](/apps-script/reference/base/ui) object for the active document, form, or\nspreadsheet.\n\nThese examples include a few extra features for convenience: the `onOpen()`\nfunction creates a [custom menu](/apps-script/guides/menus) that makes it easy\nto open the interface, and the button in the HTML file invokes a special\n`close()` method of the\n[`google.script.host`](/apps-script/guides/html/communication) API to close the\ninterface. \n\n### Code.gs\n\n```html\n// Use this code for Google Docs, Slides, Forms, or Sheets.\nfunction onOpen() {\n SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.\n .createMenu('Dialog')\n .addItem('Open', 'openDialog')\n .addToUi();\n}\n\nfunction openDialog() {\n var html = HtmlService.createHtmlOutputFromFile('Index');\n SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.\n .showModalDialog(html, 'Dialog title');\n}\n```\n\n### Index.html\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n \u003chead\u003e\n \u003cbase target=\"_top\"\u003e\n \u003c/head\u003e\n \u003cbody\u003e\n Hello, World!\n \u003cinput type=\"button\" value=\"Close\"\n onclick=\"google.script.host.close()\" /\u003e\n \u003c/body\u003e\n\u003c/html\u003e\n```\n\nNote that the first time you want to display this user interface, you must\neither run the `onOpen()` function\n[manually in the script editor](/apps-script/execution_script_editor)\nor reload the window for the Docs, Sheets, or Forms editor (which will close the\nscript editor). After that, the custom menu should appear within a few seconds\nevery time you open the file. Choose **Dialog \\\u003e Open** to see the\ninterface."]]