Google Docs erweitern

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Mit Google Apps Script können Sie Google Docs programmatisch 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 die entsprechenden Berechtigungen für das Dokument hat, und ein Skript kann an ein Dokument gebunden werden. Dadurch hat es die Möglichkeit, die Benutzeroberfläche zu ändern oder beim Öffnen des Dokuments zu antworten. Zum Erstellen eines containergebundenen Skripts in Google Docs klicken Sie 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 gezeigt 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);
}

Das obige Skript erstellt ein neues Dokument im Google Drive-Konto des Nutzers und fügt dann einen Absatz mit demselben Text wie der Name des Dokuments ein. Der Stil dieses Absatzes wird als Überschrift festgelegt und eine Tabelle wird basierend auf den Werten in einem zweidimensionalen Array angehängt. Das Skript könnte diese Änderungen auch so einfach an einem vorhandenen Dokument vornehmen, indem es den Aufruf von DocumentApp.create() durch DocumentApp.openById() oder openByUrl() ersetzt. Verwenden Sie DocumentApp.getActiveDocument() für in einem Dokument erstellte Container (containergebunden).

Struktur eines Dokuments

Aus Sicht von Apps Script ist ein Google-Dokument ähnlich wie ein HTML-Dokument, d. h. ein Google-Dokument besteht aus Elementen (z. B. einem Paragraph oder Table), die häufig andere Elemente enthalten. Die meisten Skripts, mit denen ein Google-Dokument geändert wird, beginnen mit einem Aufruf an getBody(), da der Body ein Masterelement ist, das alle anderen Elemente außer HeaderSection, FooterSection und allen Footnotes enthält.

Es gibt jedoch Regeln, welche Elementtypen andere Typen enthalten können. Außerdem kann der Dokumentdienst in Apps Script nur bestimmte Elementtypen einfügen. Der folgende Baum zeigt, welche Elemente von einem bestimmten Elementtyp enthalten sein können.

In Fettdruck dargestellte Elemente können eingefügt werden. Nicht fett formatierte Elemente können nur bearbeitet werden.

Text wird ersetzt

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-Dokument erstellen. Diese Art von Vorgang wird häufig auch als E-Mail-Zusammenführung bezeichnet.

Es gibt viele Möglichkeiten, Text zu ersetzen, aber die einfachste Methode ist im Beispiel unten die Methode replaceText(). replaceText unterstützt die meisten JavaScript-Features für reguläre Ausdrücke. Mit der ersten Funktion unten werden einem Google-Dokument mehrere Zeilen mit Platzhaltertext hinzugefügt. In der Praxis würden Sie die Platzhalter wahrscheinlicher 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 werden. Verwende in einem eigenständigen Skript stattdessen DocumentApp.create(), openById() oder openByUrl().

Platzhalter einfü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 interagieren kann und nur dann, wenn das Skript an das Dokument gebunden ist.

Benutzerdefinierte Menüs und Dialogfelder in Google Docs hinzufügen Weitere Informationen zum Erstellen benutzerdefinierter Schnittstellen 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, folge dem Stilleitfaden, damit er dem Stil und Layout des Google Docs-Editors entspricht.

Add-ons für Google Docs

Add-ons werden in Google Docs ausgeführt und können über den Add-on-Store für Google Docs installiert werden. Wenn Sie ein Skript für Google Docs entwickelt haben und es mit der ganzen Welt teilen möchten, können Sie das Skript mit Apps Script als Add-on veröffentlichen, damit andere Nutzer es aus dem 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-Dokument gebunden sind, können mit einem einfachen Trigger auf das onOpenEreignis des Dokuments reagieren. Dieses Ereignis tritt ein, wenn ein Nutzer mit Bearbeitungszugriff auf das Dokument es in Google Docs öffnet.

Schreiben Sie einfach eine Funktion namens onOpen(), um den Trigger einzurichten. Ein Beispiel für diesen Trigger finden Sie unter Benutzerdefinierte Menüs in Google Workspace. Obwohl der einfache Trigger zum Hinzufügen von Menüs nützlich ist, kann er keine Apps Script-Dienste verwenden, die eine Autorisierung erfordern.