Mit Google Apps Script können Sie Google-Dokumente und die Benutzeroberfläche mit neuen Menüs, Dialogfeldern und Seitenleisten.
Grundlagen
Apps Script kann auf zwei Arten mit Google Docs interagieren: Jedes Skript kann Ein Dokument erstellen oder ändern, wenn der Nutzer des Skripts über die entsprechenden Berechtigungen für und ein Skript kann auch gebunden an ein Dokument, wodurch das Skript spezielle Funktionen, um die Benutzeroberfläche zu ändern oder zu reagieren, wenn das Dokument geöffnet ist. Um ein containergebundenes Skript in Google Docs zu erstellen, Klicken Sie auf Erweiterungen > Apps Script.
In beiden Fällen ist die Interaktion mit einem Google Docs-Dokument über Apps Script Document Service, wie im folgenden Beispiel. demonstriert wird.
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 Skript oben erstellt ein neues Dokument im Google Drive-Konto des Nutzers und
ruft den Tab mit der ID t.0
(standardmäßiger erster Tab) ab und fügt einen Absatz ein.
die denselben Text wie der Dokumentname enthält, den Absatz als Format
heading und hängt eine Tabelle basierend auf den Werten in einem zweidimensionalen Array an. Die
diese Änderungen an einem
bestehenden Dokument genauso leicht vornehmen,
Der Aufruf von DocumentApp.create()
wird ersetzt
mit DocumentApp.openById()
oder openByUrl()
.
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, d. h., ein Dokument besteht aus mindestens
Tab
-Objekte, die jeweils Folgendes enthalten:
(z. B. Paragraph
- oder
Table
), die häufig andere Elemente enthalten
Elemente. Die meisten Skripts, die ein Google Docs-Dokument ändern, beginnen mit einem Aufruf an
getTab()
und
asDocumentTab()
gefolgt von getBody()
,
da Body
ein Kernelement ist,
die alle anderen Elemente in einer Registerkarte enthält, mit Ausnahme des
HeaderSection
,
FooterSection
und alle
Footnotes
.
Es gibt jedoch Regeln dazu, welche Elementtypen andere Typen enthalten können. Darüber hinaus kann der Dokumentdienst in Apps Script nur in andere Elemente zu übertragen. In der Abbildung unten sehen Sie, -Elemente können von einem bestimmten Elementtyp enthalten sein.
Fettgedruckte Elemente können eingefügt werden. nicht fett formatierte Elemente manipuliert wurden.
- Dokument
- Tab
- DocumentTab
- Textkörper
- HeaderSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (Seitennummer usw.)
- Absatz
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (Seitennummer usw.)
- Tabelle
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (Seitennummer usw.)
- Absatz
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (Seitennummer usw.)
- Tabelle
- ListItem
- FootnoteSection
- DocumentTab
- Tab
Text wird ersetzt
Apps Script wird häufig verwendet, um Text in Google Docs zu ersetzen. Nehmen wir an, Sie haben eine Tabelle voller Kundeninformationen und Sie möchten ein personalisiertes Google Docs für jeden Kunden. (Diese Art von Vorgang wird oft als E-Mail- merge.)
Es gibt viele Möglichkeiten, Text zu ersetzen. Die einfachste ist die
replaceText()
-Methode wie im Beispiel unten dargestellt. replaceText
unterstützt die meisten
der JavaScript-Funktionen für reguläre Ausdrücke. Die erste Funktion unten
fügt einem Google-Dokument mehrere Zeilen mit Platzhaltertext hinzu. in der realen Welt
ist es wahrscheinlicher, dass Sie die Platzhalter
selbst in das Dokument eingeben. Die
zweiten Funktion die Platzhalter durch Eigenschaften ersetzt, die in den
client
-Objekt.
Beachten Sie, dass beide Funktionen die Methode
getActiveDocument()
und
getActiveTab()
-Methoden, die nur für Skripts gelten, die in einem Google Docs-Dokument erstellt wurden;
in einem eigenständigen Skript erstellen,
DocumentApp.create()
openById()
oder openByUrl()
,
kombiniert 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-Dokumente anpassen, indem Sie Menüs, Dialogfelder und Seitenleisten. Ein Skript kann mit der Benutzeroberfläche jedoch nur die aktuelle Instanz eines geöffneten Dokuments und nur, wenn das Skript gebunden an das Dokument.
Benutzerdefinierte Menüs und Dialogfelder zu Ihren Google-Dokumenten. Weitere Informationen zum Erstellen benutzerdefinierter Oberflächen für ein Dialogfeld oder eine Seitenleiste finden Sie in der Leitfaden zum HTML-Dienst. Wenn Sie Ihre benutzerdefinierte Oberfläche als Teil eines Add-on folgen Sie der Styleguide, um sie an die Stil und Layout des Google Docs-Editors.
Add-ons für Google Docs
Add-ons werden in Google Docs ausgeführt und können installiert werden. aus dem Add-on-Store für Google Docs. Wenn Sie ein Skript für Google Docs entwickelt haben und sie mit der ganzen Welt teilen möchten, können Sie mit Apps Script veröffentlichen des Skripts als , damit andere Nutzer es aus dem Add-on-Store installieren können.
Informationen zum Erstellen von Add-ons für Google Docs finden Sie unter Kurzanleitung zum Erstellen von Add-ons für Docs
Trigger
Skripts, die an ein Google-Konto gebunden sind
Im Dokument kann ein einfacher Trigger verwendet werden, um zu antworten
auf das onOpen
-Ereignis des Dokuments, das
wird jedes Mal angezeigt, wenn ein Nutzer mit Bearbeitungszugriff auf das Dokument es in Google Docs öffnet.
Schreiben Sie einfach eine Funktion namens onOpen()
, um den Trigger einzurichten. Beispiel
Weitere Informationen
Obwohl der einfache Trigger zum Hinzufügen von Menüs nützlich ist, kann er keine Apps verwenden.
Skriptdienste, die eine Autorisierung erfordern.