Erweitern von Google Docs

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 die speziellen Funktionen des Skripts, 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-Dokument über die Document Service, wie im folgenden Beispiel. demonstriert wird.

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);
}

Mit dem Skript oben wird ein neues Dokument im Google Drive-Konto des Nutzers erstellt und einen Absatz, der denselben Text wie der Name des Dokuments, Stile, Absatz als Überschrift und hängt eine Tabelle basierend auf den Werten in einem ein zweidimensionales Array. Genauso einfach kann das Skript diese Änderungen an einem vorhandenen Dokument durch Ersetzen des Aufrufs von DocumentApp.create() mit DocumentApp.openById() oder openByUrl(). Verwenden Sie für Skripts, die in einem Dokument erstellt wurden (containergebunden), DocumentApp.getActiveDocument()

Struktur eines Dokuments

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

Es gibt jedoch Regeln dazu, welche Elementtypen andere Typen enthalten können. Darüber hinaus können mit dem Dokumentdienst in Apps Script nur bestimmte Typen eingefügt werden. von Elementen. Die Abbildung unten zeigt, welche Elemente von einer bestimmten Elementtyp.

Fettgedruckte Elemente können eingefügt werden. nicht fett formatierte Elemente manipuliert wurden.

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() , die nur für Skripts gilt, die in einem Google-Dokument erstellt wurden. in einem Skript erstellen, verwenden Sie DocumentApp.create() openById(), oder openByUrl() .

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-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.