Mit Google Apps Script können Sie programmatisch Google Docs-Dokumente erstellen und ändern sowie die Benutzeroberfläche mit neuen Menüs, Dialogfeldern und Seitenleisten anpassen.
Grundlagen
Apps Script kann auf zwei Arten mit Google Docs interagieren: Jedes Skript kann ein Dokument erstellen oder ändern, wenn der Nutzer des Skripts die entsprechenden Berechtigungen für das Dokument hat. Außerdem kann ein Skript an ein Dokument gebunden werden, wodurch das Skript spezielle Möglichkeiten erhält, die Benutzeroberfläche zu ändern oder zu reagieren, wenn das Dokument geöffnet wird. Wenn Sie ein containergebundenes Skript in Google Docs erstellen möchten, klicken Sie auf Erweiterungen > Apps Script.
In beiden Fällen können Sie mit einem Google Docs-Dokument interagieren, indem Sie den Dokumentdienst von Apps Script verwenden, wie im folgenden Beispiel gezeigt.
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);
}
Das vorherige Skript erstellt ein neues Dokument im Google Drive des Nutzers, ruft dann den Tab mit der ID t.0 ab (der erste Tab ist standardmäßig ausgewählt), fügt einen Absatz mit demselben Text wie der Name des Dokuments ein, formatiert diesen Absatz als Überschrift und fügt eine Tabelle basierend auf den Werten in einem zweidimensionalen Array an. Das
Skript könnte diese Änderungen auch an einem vorhandenen Dokument vornehmen, indem der
Aufruf von DocumentApp.create
durch DocumentApp.openById
oder openByUrl ersetzt wird.
Verwenden Sie für Skripts, die in einem Dokument erstellt wurden (containergebunden),
DocumentApp.getActiveDocument
und Document.getActiveTab.
Struktur eines Dokuments
Aus der Sicht von Apps Script ist ein Google Docs-Dokument
ähnlich wie ein HTML-Dokument strukturiert. Das heißt, ein Dokument besteht aus einem oder
mehreren Tab-Objekten, die jeweils Elemente wie einen Paragraph oder
Table enthalten, die oft andere
Elemente enthalten. Die meisten Skripts, die ein Google Docs-Dokument ändern, beginnen mit einem
Aufruf von getTab
und asDocumentTab
gefolgt von getBody,
da der Body ein Kernelement ist,
das alle anderen Elemente auf einem Tab mit Ausnahme der
HeaderSection,
FooterSection und aller
Footnotes enthält.
Es gibt jedoch Regeln, welche Arten von Elementen andere Arten von Elementen enthalten können. Außerdem kann der Dokumentdienst in Apps Script nur bestimmte Arten von Elementen in andere Elemente einfügen. Der folgende Baum zeigt, welche Elemente von einer bestimmten Art von Element enthalten sein können.
Fett dargestellte Elemente können eingefügt werden. Elemente, die nicht fett dargestellt sind, können nur an Ort und Stelle bearbeitet werden.
- Document
- Tab
- DocumentTab
- Body
- HeaderSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Paragraph
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Table
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Paragraph
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Table
- ListItem
- FootnoteSection
- DocumentTab
- Tab
Text ersetzen
Apps Script wird häufig verwendet, um Text in Google Docs zu ersetzen. Angenommen, Sie haben eine Tabelle mit Kundeninformationen und möchten für jeden Kunden ein personalisiertes Google Docs-Dokument erstellen. Diese Art von Vorgang wird oft als Zusammenstellung von E-Mail-Inhalten bezeichnet.
Sie können Text mit der replaceText
Methode ersetzen, die die meisten regulären Ausdrücke von JavaScript
unterstützt.
Im folgenden Beispiel fügt die erste Funktion Platzhaltertext in das Dokument ein und die zweite Funktion ersetzt diesen Text durch Attribute aus einem client-Objekt.
Beide Funktionen verwenden die
getActiveDocument
und
getActiveTab
Methoden, die nur für Skripts gelten, die in einem Google Docs
Dokument erstellt wurden. Verwenden Sie in einem eigenständigen Skript stattdessen
DocumentApp.create,
openById,
oder openByUrl,
in Kombination mit Document.getTab,
.
Platzhalter hinzufügen
function createPlaceholders() {
var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
body.appendParagraph('{name}');
body.appendParagraph('{address}');
body.appendParagraph('{city} {state} {zip}');
}
Platzhalter ersetzen
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);
}
Benutzerdefinierte Menüs und Benutzeroberflächen
Sie können Google Docs anpassen, indem Sie benutzerdefinierte Menüs, Dialogfelder und Seitenleistenhinzufügen. Ein Skript kann nur mit der Benutzeroberfläche des Dokuments interagieren, an das es gebunden ist.
Weitere Informationen zum Erstellen benutzerdefinierter Benutzeroberflächen mit HTML und CSS finden Sie im Leitfaden zum HTML-Dienst. Wenn Sie Ihre Benutzeroberfläche als Add‑on veröffentlichen möchten, folgen Sie dem Styleguide, damit das Erscheinungsbild mit dem Google Docs-Editor übereinstimmt.
Add‑ons für Google Docs
Add-ons werden in Google Docs ausgeführt und können im Add‑on-Store für Google Docs installiert werden. Wenn Sie ein Skript für Google Docs entwickelt haben und es mit anderen teilen möchten, können Sie es mit Apps Script als Add‑on veröffentlichen, damit andere Nutzer es im Add‑on-Store installieren können.
Informationen zum Erstellen eines Add‑ons für Google Docs finden Sie in der Kurzanleitung zum Erstellen von Add‑ons für Google Docs.
Trigger
Skripts, die an ein Google
Docs-Dokument gebunden sind, können einen einfachen Trigger verwenden, um
auf das onOpen Ereignis des Dokuments zu reagieren. Dieses
Ereignis tritt ein, wenn ein Nutzer mit Bearbeitungszugriff auf das Dokument es in
Google Docs öffnet.
Um den Trigger einzurichten, schreiben Sie eine Funktion mit dem Namen onOpen. Ein Beispiel
für diesen Trigger finden Sie unter Benutzerdefinierte Menüs in Google Workspace.
Der Trigger ist zwar nützlich, um Menüs hinzuzufügen, kann aber keine Apps Script-Dienste verwenden, für die eine Autorisierung erforderlich ist.