Google Apps Script vous permet de créer et de modifier des documents Google Docs par programmation, et personnaliser l'interface utilisateur à l'aide de nouveaux menus, de nouvelles boîtes de dialogue et les barres latérales.
Principes de base
Apps Script peut interagir avec Google Docs de deux manières: n'importe quel script peut créer ou modifier un document si l'utilisateur du script dispose des autorisations appropriées pour le document, et un script peut également être lié à un document, ce qui donne les capacités spéciales du script pour modifier l'interface utilisateur ou répondre lorsque le document est ouvert. Pour créer un script lié à un conteneur à partir de Google Docs, Cliquez sur Extensions > Apps Script.
Dans les deux cas, il est facile d'interagir avec un document Google Docs via Apps Script Document Service, comme dans l'exemple suivant démontre.
function createDoc() { var doc = DocumentApp.create('Sample Document'); var documentTab = doc.getTab('t.0').asDocumentTab(); var body = documentTab.getBody(); var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']]; body.insertParagraph(0, doc.getName()) .setHeading(DocumentApp.ParagraphHeading.HEADING1); table = body.appendTable(rowsData); table.getRow(0).editAsText().setBold(true); }
Le script ci-dessus crée un document dans le Google Drive de l'utilisateur, puis
récupère l'onglet ayant l'ID t.0
(premier onglet par défaut), insère un paragraphe
qui contient le même texte que le nom du document, applique un style au paragraphe
et ajoute un tableau basé sur les valeurs d'un tableau bidimensionnel. La
pourrait tout aussi facilement apporter
ces modifications à un document existant en
remplacer l'appel à DocumentApp.create()
avec DocumentApp.openById()
ou openByUrl()
.
Pour les scripts créés dans un document (liés à un conteneur), utilisez
DocumentApp.getActiveDocument()
et Document.getActiveTab()
.
Structure d'un document
Du point de vue d'Apps Script, les documents Google Docs sont structurés
un peu comme un document HTML, c'est-à-dire qu'un document est composé d'un ou de plusieurs
Des objets Tab
, chacun contenant
(comme un Paragraph
ou
Table
) qui contiennent souvent d'autres
éléments. La plupart des scripts qui modifient un document Google Docs commencent par un appel
getTab()
et
asDocumentTab()
suivi de getBody()
,
parce que Body
est un élément essentiel
contenant tous les autres éléments d'un onglet, à l'exception des
HeaderSection
,
FooterSection
et toute autre
Footnotes
.
Cependant, il existe des règles sur les types d'éléments qui peuvent contenir d'autres types. De plus, le service Document d'Apps Script ne peut insérer certains types d'éléments dans d'autres éléments. L'arborescence ci-dessous indique éléments peuvent être contenus par un certain type d'élément.
Les éléments en gras peuvent être insérés. les éléments non en gras manipulées sur place.
- Document
- Onglet
- DocumentTab
- Texte
- ListItem
- Paragraphe
- Tableau
- TableRow
- TableCell
- Paragraphe...
- ListItem...
- Tableau...
- TableCell
- TableRow
- TableOfContents
- Paragraphe...
- ListItem...
- Tableau...
- HeaderSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Texte
- UnsupportedElement (numéro de page, etc.)
- Paragraphe
- HorizontalRule
- InlineDrawing
- InlineImage
- Texte
- UnsupportedElement (numéro de page, etc.)
- Tableau
- TableRow
- TableCell
- Paragraphe...
- ListItem...
- Tableau...
- TableCell
- TableRow
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Texte
- UnsupportedElement (numéro de page, etc.)
- Paragraphe
- HorizontalRule
- InlineDrawing
- InlineImage
- Texte
- UnsupportedElement (numéro de page, etc.)
- Tableau
- TableRow
- TableCell
- Paragraphe...
- ListItem...
- Tableau...
- TableCell
- TableRow
- ListItem
- FootnoteSection
- Texte
- DocumentTab
- Onglet
Remplacement de texte
Apps Script est souvent utilisé pour remplacer du texte dans Google Docs. Disons que vous avez un d'une feuille de calcul remplie d'informations sur les clients, Google Docs pour chaque client. (Ce type d'opération est souvent désigné par le terme merge.)
Il existe de nombreuses façons de remplacer du texte, mais la plus simple est
replaceText()
présentée dans l'exemple ci-dessous. replaceText
prend en charge la plupart
des fonctionnalités d'expression régulière de JavaScript. La première fonction ci-dessous
ajoute plusieurs lignes de texte d'espace réservé à un document Google Docs ; dans le monde réel, vous
serait plus susceptible de taper vous-même les espaces réservés dans le document. La
la deuxième fonction remplace les espaces réservés par les propriétés définies dans
client
.
Notez que ces deux fonctions utilisent
getActiveDocument()
et
getActiveTab()
qui s'appliquent uniquement aux scripts créés dans un document Google Docs ;
dans un script autonome, utilisez
DocumentApp.create()
openById()
,
ou openByUrl()
,
combiné à Document.getTab()
,
à la place.
Ajouter des espaces réservés
function createPlaceholders() { var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody(); body.appendParagraph('{name}'); body.appendParagraph('{address}'); body.appendParagraph('{city} {state} {zip}'); }
Remplacer les espaces réservés
function searchAndReplace() { var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody(); var client = { name: 'Joe Script-Guru', address: '100 Script Rd', city: 'Scriptville', state: 'GA', zip: 94043 }; body.replaceText('{name}', client.name); body.replaceText('{address}', client.address); body.replaceText('{city}', client.city); body.replaceText('{state}', client.state); body.replaceText('{zip}', client.zip); }
Menus personnalisés et interfaces utilisateur
Vous pouvez personnaliser Google Docs en ajoutant des menus, des boîtes de dialogue et et les barres latérales. Gardez à l'esprit, cependant, qu'un script ne peut interagir avec l'interface utilisateur que pour l'instance actuelle d'un document ouvert, et uniquement si le script est lié au document.
Découvrez comment ajouter des menus personnalisés et boîtes de dialogue à vos documents Google Docs. Pour en savoir plus sur la création d'interfaces personnalisées pour une boîte de dialogue ou une barre latérale, consultez les guide des services HTML. Si vous envisagez de publier votre interface personnalisée dans le cadre d'un module complémentaire, suivez le guide de style pour plus de cohérence avec style et mise en page de l'éditeur Google Docs.
Modules complémentaires pour Google Docs
Les modules complémentaires s'exécutent dans Google Docs et peuvent être installés à partir de la boutique de modules complémentaires Google Docs. Si vous avez développé un script pour Google Docs et que vous souhaitez le partager avec le monde entier, Apps Script vous permet publiez votre script en tant que afin que d'autres utilisateurs puissent l'installer depuis la boutique de modules complémentaires.
Pour savoir comment créer un module complémentaire pour Google Docs, consultez la page guide de démarrage rapide pour la création de modules complémentaires Docs.
Déclencheurs
Les scripts liés à un compte Google
Le document peut utiliser un déclencheur simple pour répondre
à l'événement onOpen
du document, qui
se produit chaque fois qu'un utilisateur autorisé à modifier le document l'ouvre dans Google Docs.
Pour configurer le déclencheur, il vous suffit d'écrire une fonction appelée onOpen()
. Exemple :
de ce déclencheur, consultez la section Menus personnalisés dans Google Workspace.
Bien que le déclencheur simple soit utile pour ajouter des menus, il ne peut utiliser aucune application
Services de script nécessitant une autorisation.