Rozszerzanie możliwości Dokumentów Google

Google Apps Script umożliwia programowe tworzenie i modyfikowanie Dokumentów Google, a także dostosować interfejs użytkownika za pomocą nowych menu, okien dialogowych na pasku bocznym.

Podstawy

Apps Script może wchodzić w interakcje z Dokumentami Google na 2 ogólne sposoby: utworzysz lub zmodyfikujesz dokument, jeśli użytkownik skryptu ma odpowiednie uprawnienia dokument, a skrypt można również powiązane z dokumentem, co daje ze specjalnych zdolności skryptu do zmiany interfejsu użytkownika lub do reagowania, gdy dokument jest otwarty. Aby utworzyć w Dokumentach Google skrypt powiązany z kontenerem, kliknij Rozszerzenia > Apps Script.

W obu przypadkach można łatwo korzystać z Dokumentów Google za pomocą Apps Script Document Service zgodnie z poniższym przykładem co pokazuje.

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

Powyższy skrypt tworzy nowy dokument na Dysku Google użytkownika, a następnie pobiera kartę o identyfikatorze t.0 (domyślna pierwsza karta) i wstawia akapit zawierający ten sam tekst co nazwa dokumentu, style tego akapitu jako nagłówka i dołącza tabelę na podstawie wartości w dwuwymiarowej tablicy. skrypt może równie łatwo wprowadzić te zmiany w istniejącym dokumencie, zastępując wywołanie DocumentApp.create() z DocumentApp.openById() lub openByUrl(). W przypadku skryptów utworzonych w dokumencie (powiązanych z kontenerem) użyj DocumentApp.getActiveDocument() i Document.getActiveTab().

Struktura dokumentu

Z punktu widzenia Apps Script dokument Dokumenty Google ma strukturę jest jak dokument HTML – czyli dokument składa się z Tab, z których każdy zawiera elementy (takie jak Paragraph lub Table), które często zawierają inne . Większość skryptów modyfikujących dokument w Dokumentach Google zaczyna się od wywołania getTab() i asDocumentTab() a następnie getBody(), ponieważ Body to podstawowy element który zawiera wszystkie pozostałe elementy karty oprócz HeaderSection FooterSection i inne Footnotes.

Istnieją jednak reguły, które określają, które typy elementów mogą zawierać inne typy. Ponadto usługa Document Service w Apps Script umożliwia wstawianie wyłącznie określonych typów elementów w inne. W drzewie poniżej widać, element może zawierać elementy określonego typu.

Pogrubione elementy można wstawiać. elementy niepogrubione mogą być zmanipulowane.

Zastępowanie tekstu

Skrypt za pomocą Apps Script jest często używany do zastępowania tekstu w Dokumentach Google. Załóżmy, że masz arkusza kalkulacyjnego zawierającego szczegółowe informacje o kliencie i chcą Państwo wygenerować Dokumenty Google dla każdego klienta. (Ten typ operacji jest często nazywany pocztą merge.)

Tekst można zastępować na wiele sposobów, ale najprostszym jest replaceText() przedstawioną w przykładzie poniżej. replaceText obsługuje większość funkcji JavaScriptu związanych z wyrażeniami regularnymi. Pierwsza funkcja poniżej dodaje kilka wierszy tekstu zastępczego do Dokumentów Google; w świecie rzeczywistym. jest bardziej prawdopodobne, że sami wpiszą obiekty zastępcze w dokumencie. zastępuje zmienne właściwościami zdefiniowanymi w client obiekt.

Pamiętaj, że obie te funkcje korzystają z funkcji getActiveDocument() oraz getActiveTab() metody, które mają zastosowanie tylko do skryptów utworzonych w dokumencie Dokumentów Google; w samodzielnym skrypcie, użyj DocumentApp.create(), openById() lub openByUrl(), w połączeniu z Document.getTab(), .

Dodaj obiekty zastępcze

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

Zastąp zmienne

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

Niestandardowe menu i interfejsy

Dokumenty Google można dostosować, dodając menu, okna dialogowe na pasku bocznym. Pamiętaj jednak, że skrypt może wchodzić w interakcje z interfejsem tylko bieżącej instancji otwartego dokumentu i tylko wtedy, gdy skrypt powiązany z dokumentem.

Dowiedz się, jak dodawać menu niestandardowe oraz okna dialogowe Dokumentów Google. Więcej informacji o tworzeniu niestandardowych interfejsów dla okna dialogowego lub paska bocznego znajdziesz w przewodnika po usłudze HTML. Jeśli planujesz opublikować swój interfejs w ramach dodatek, wykonaj wskazówki redakcyjne dotyczące spójności stylu i układu edytora Dokumentów Google.

Dodatki do Dokumentów Google

Dodatki działają w Dokumentach Google i można je instalować w sklepie z dodatkami do Dokumentów Google. Jeśli masz skrypt dla Dokumentów Google i chcesz ją udostępnić światu, Apps Script umożliwia opublikuj skrypt jako aby inni użytkownicy mogli go zainstalować ze sklepu z dodatkami.

Aby dowiedzieć się, jak utworzyć dodatek do Dokumentów Google, zobacz krótkie wprowadzenie do tworzenia dodatków do Dokumentów.

Reguły

Skrypty powiązane z kontem Google Dokument może odpowiadać, używając prostego aktywatora do onOpen zdarzenia dokumentu, które ma miejsce za każdym razem, gdy użytkownik z uprawnieniami do edycji otworzy dokument w Dokumentach Google.

Aby skonfigurować aktywator, wystarczy napisać funkcję o nazwie onOpen(). Przykład: Więcej informacji znajdziesz w artykule Menu niestandardowe w Google Workspace. Mimo że prosty aktywator jest przydatny przy dodawaniu menu, nie może korzystać z żadnych aplikacji Usługi skryptów, które wymagają autoryzacji.