Mit Google Apps Script können Sie Google-Dokumente programmatisch erstellen und ändern sowie die Benutzeroberfläche mit neuen Menüs, Dialogfeldern und Seitenleisten anpassen.
Grundlagen
Apps Script kann mit Google Docs auf zwei Arten interagieren: Ein Skript kann ein Dokument erstellen oder ändern, wenn der Nutzer des Dokuments die entsprechenden Berechtigungen hat, oder ein Skript kann an ein Dokument gebunden werden. Dadurch hat das Skript spezielle Möglichkeiten, die Benutzeroberfläche zu ändern oder zu antworten, wenn das Dokument geöffnet wird. Klicken Sie zum Erstellen eines containergebundenen Skripts in Google Docs auf Erweiterungen > Apps Script.
In beiden Fällen ist die Interaktion mit einem Google-Dokument über den Dokumentdienst von Apps Script wie im folgenden Beispiel einfach.
function createDoc() { var doc = DocumentApp.create('Sample Document'); var body = doc.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); }
Durch das obige Skript wird ein neues Dokument im Google Drive-Konto des Nutzers erstellt. Anschließend wird ein Absatz eingefügt, der denselben Text wie der Name des Dokuments enthält, der Absatz als Überschrift formatiert und eine Tabelle auf Grundlage der Werte in einem zweidimensionalen Array angehängt. Das Skript kann diese Änderungen auch einfach an einem vorhandenen Dokument vornehmen, indem der Aufruf von DocumentApp.create()
durch DocumentApp.openById()
oder openByUrl()
ersetzt wird.
Verwenden Sie DocumentApp.getActiveDocument()
für Skripts, die in einem Dokument erstellt wurden (containergebunden).
Struktur eines Dokuments
Aus Sicht von Apps Script ist ein Google-Dokument ähnlich wie ein HTML-Dokument aufgebaut, d. h. ein Google-Dokument besteht aus Elementen (z. B. Paragraph
oder Table
), die häufig andere Elemente enthalten. Die meisten Skripts, die ein Google-Dokument ändern, beginnen mit einem Aufruf von getBody()
, da der Body
ein Masterelement ist, das alle anderen Elemente außer HeaderSection
, FooterSection
und Footnotes
enthält.
Es gibt jedoch Regeln, welche Arten von Elementen andere Typen enthalten dürfen. Außerdem kann der Dokumentdienst in Apps Script nur bestimmte Elementtypen einfügen. Der folgende Baum zeigt, welche Elemente in einem bestimmten Elementtyp enthalten sein können.
Elemente in Fettschrift können eingefügt werden. Nicht fett formatierte Elemente können nur an einer Stelle bearbeitet werden.
- Dokument
- Text
- HeaderSection
- ListItem
- Horizontale Regel
- Inline-Zeichnung
- Inline-Bild
- Text
- Nicht unterstütztes Element (Seitennummer usw.)
- Absatz
- Horizontale Regel
- Inline-Zeichnung
- Inline-Bild
- Text
- Nicht unterstütztes Element (Seitennummer usw.)
- Tabelle
- ListItem
- FooterSection
- ListItem
- Horizontale Regel
- Inline-Zeichnung
- Inline-Bild
- Text
- Nicht unterstütztes Element (Seitennummer usw.)
- Absatz
- Horizontale Regel
- Inline-Zeichnung
- Inline-Bild
- Text
- Nicht unterstütztes Element (Seitennummer usw.)
- Tabelle
- ListItem
- Fußnote
Text wird ersetzt
Apps Script wird häufig verwendet, um Text in Google Docs zu ersetzen. Angenommen, Sie haben eine Tabelle mit Kundendaten und möchten für jeden Client ein personalisiertes Google-Dokument erstellen. Diese Art von Vorgang wird häufig als Mail-Merge bezeichnet.
Es gibt viele Möglichkeiten, Text zu ersetzen. Die einfachste Methode ist die im Beispiel unten gezeigte Methode replaceText()
. replaceText
unterstützt die meisten regulären Ausdrucksfunktionen von JavaScript. Mit der ersten unten aufgeführten Funktion werden in Google Docs mehrere Zeilen mit Platzhaltertext eingefügt. In der Praxis würden Sie die Platzhalter mit größerer Wahrscheinlichkeit selbst in das Dokument eingeben. Die zweite Funktion ersetzt die Platzhalter durch Attribute, die im Objekt client
definiert sind.
Für beide Funktionen wird die Methode getActiveDocument()
verwendet, die nur für Skripts gilt, die in einem Google-Dokument erstellt wurden. In einem eigenständigen Skript können Sie stattdessen DocumentApp.create()
, openById()
oder openByUrl()
verwenden.
Platzhalter hinzufügen
function createPlaceholders() { var body = DocumentApp.getActiveDocument().getBody(); body.appendParagraph('{name}'); body.appendParagraph('{address}'); body.appendParagraph('{city} {state} {zip}'); }
Platzhalter ersetzen
function searchAndReplace() { var body = DocumentApp.getActiveDocument() .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 Menüs, Dialogfelder und Seitenleisten hinzufügen. Beachten Sie jedoch, dass ein Skript nur mit der UI für die aktuelle Instanz eines geöffneten Dokuments und nur dann interagieren kann, wenn das Skript an das Dokument gebunden ist.
Benutzerdefinierte Menüs und Dialogfelder in Google Docs hinzufügen Weitere Informationen zum Erstellen benutzerdefinierter Oberflächen für ein Dialogfeld oder eine Seitenleiste finden Sie in der Anleitung zum HTML-Dienst. Wenn du deine benutzerdefinierte Oberfläche als Teil eines Add-ons veröffentlichen möchtest, halte den Stilrichtlinien entsprechend dem Stil und Layout des Google Docs-Editors entsprechend ein.
Add-ons für Google Docs
Add-ons werden in Google Docs ausgeführt und können über den Add-on-Store von Google Docs installiert werden. Wenn Sie ein Skript für Google Docs entwickelt haben und es für die ganze Welt freigeben möchten, können Sie es mit Apps Script als Add-on veröffentlichen, damit andere Nutzer es über den Add-on-Store installieren können.
Informationen zum Erstellen eines Add-ons für Google Docs finden Sie in der Kurzanleitung zum Erstellen von Docs-Add-ons.
Trigger
Skripts, die an ein Google-Dokument gebunden sind, können mit einem einfachen Trigger auf das onOpen
-Ereignis des Dokuments reagieren. Dieses Ereignis tritt ein, wenn ein Nutzer mit Bearbeitungszugriff auf das Dokument es in Google Docs öffnet.
Zum Einrichten des Triggers schreiben Sie einfach eine Funktion mit dem Namen onOpen()
. Ein Beispiel für diesen Trigger finden Sie unter Benutzerdefinierte Menüs in Google Workspace.
Der einfache Trigger ist zwar nützlich zum Hinzufügen von Menüs, kann jedoch keine Apps Script-Dienste verwenden, die autorisiert werden müssen.