Rozszerzanie Dokumentów Google

Skrypt Google Apps umożliwia automatyczne tworzenie i modyfikowanie Dokumentów Google, a także dostosowywanie interfejsu użytkownika za pomocą nowych menu, okien dialogowych i pasków bocznych.

Podstawy

Apps Script może wchodzić w interakcję z Dokumentami Google na 2 różne sposoby: dowolny skrypt może tworzyć lub modyfikować dokument, jeśli jego użytkownik ma odpowiednie uprawnienia. Skrypt może też być powiązany z dokumentem, co umożliwia specjalistom zmianę interfejsu lub odpowiedź po otwarciu dokumentu. Aby utworzyć skrypt powiązany z kontenerem w Dokumentach Google, kliknij Rozszerzenia > Apps Script.

W obu przypadkach można łatwo korzystać z dokumentu Google za pomocą usługi Dokumentów Apps Script, jak pokazano w poniższych przykładach.

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

Powyższy skrypt tworzy nowy dokument na Dysku Google użytkownika, a potem wstawia akapit z nazwą dokumentu, stylami akapitu jako nagłówkiem oraz dołącza tabelę na podstawie wartości w ramach dwuwymiarowej tablicy. Skrypt może łatwo wprowadzać takie zmiany w dotychczasowym dokumencie, zastępując wywołanie DocumentApp.create() DocumentApp.openById() lub openByUrl(). W przypadku skryptów utworzonych w dokumencie (powiązanym z kontenerem) użyj narzędzia DocumentApp.getActiveDocument().

Struktura dokumentu

Z punktu widzenia Apps Script dokument Google ma strukturę podobną do dokumentu HTML – to znaczy, że dokument Google składa się z elementów (takich jak Paragraph lub Table), które często zawierają inne elementy. Większość skryptów, które modyfikują dokument Google, zaczyna się od wywołania getBody(), bo element Body jest elementem głównym, który zawiera wszystkie pozostałe elementy oprócz HeaderSection, FooterSection i wszelkich Footnotes.

Istnieją jednak reguły określające, które typy elementów mogą zawierać inne. Ponadto usługa Document w Apps Script może wstawiać tylko określone typy elementów. Drzewo poniżej pokazuje, jakie elementy mogą zawierać elementy określonego typu.

Elementy wstawione pogrubieniem można wstawiać, a elementami innymi niż pogrubione można tylko manipulować.

Zastępowanie tekstu

Apps Script jest często używany do zastępowania tekstu w Dokumentach Google. Załóżmy, że masz arkusz kalkulacyjny z pełnymi informacjami o kliencie i chcesz w jego przypadku wygenerować spersonalizowane Dokumenty Google. Ten rodzaj operacji jest często nazywany scalaniem poczty.

Tekst można zastąpić na wiele sposobów, ale najprostsza jest metoda replaceText() widoczna w poniższym przykładzie. replaceText obsługuje większość funkcji wyrażenia regularnego JavaScriptu. Pierwsza z nich pozwala dodać kilka wierszy tekstu zastępczego do Dokumentów Google; w rzeczywistości jest bardziej prawdopodobne, że będziesz sam wpisywać obiekty zastępcze w dokumencie. Druga funkcja zastępuje obiekty zastępcze właściwościami zdefiniowanymi w obiekcie client.

Obie te funkcje korzystają z metody getActiveDocument(), która ma zastosowanie tylko do skryptów utworzonych w Dokumentach Google. W samodzielnym skrypcie użyj zamiast nich DocumentApp.create(), openById() lub openByUrl().

Dodaj obiekty zastępcze

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

Zastąp obiekty zastępcze

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

Niestandardowe menu i interfejsy

Możesz dostosować Dokumenty Google przez dodanie menu, okien dialogowych i pasków bocznych. Pamiętaj jednak, że skrypt może korzystać z interfejsu użytkownika tylko w przypadku bieżącego wystąpienia otwartego dokumentu i tylko wtedy, gdy jest on powiązany z tym dokumentem.

Dowiedz się, jak dodawać do Dokumentów Google niestandardowe menu i okna. Więcej informacji o tworzeniu interfejsów niestandardowych w oknie dialogowym lub na pasku bocznym znajdziesz w przewodniku po usłudze HTML. Jeśli zamierzasz opublikować interfejs niestandardowy w ramach dodatku, postępuj zgodnie ze wskazówkami dotyczącymi stylu, by zachować spójność ze stylem i układem edytora Dokumentów Google.

Dodatki do Dokumentów Google

Dodatki działają w Dokumentach Google i można je instalować ze sklepu z dodatkami do Dokumentów Google. Jeśli masz utworzony skrypt w Dokumentach Google i chcesz go udostępnić całemu światu, możesz go opublikować jako dodatek, aby inni użytkownicy mogli go zainstalować ze sklepu z dodatkami.

Aby dowiedzieć się, jak utworzyć dodatek do Dokumentów Google, zobacz krótkie informacje o tworzeniu dodatków.

Aktywatory

Skrypty powiązane z dokumentem Google mogą korzystać z prostego aktywatora do odpowiadania na onOpen zdarzeniekto ma dostęp do tego dokumentu

Aby skonfigurować regułę, wystarczy napisać funkcję o nazwie onOpen(). Przykład tej reguły znajdziesz w artykule Niestandardowe menu w Google Workspace. Chociaż prosta reguła jest przydatna podczas dodawania menu, nie może używać żadnych usług Apps Script, które wymagają autoryzacji.