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ć.
- Dokument
- Treść
- HeaderSection
- ListItem
- Reguła horyzontalna
- Wbudowany rysunek
- Wbudowany obraz
- Tekst
- NieobsługiwanElement (numer strony itp.)
- Akapit
- Reguła horyzontalna
- Wbudowany rysunek
- Wbudowany obraz
- Tekst
- NieobsługiwanElement (numer strony itp.)
- Tabela
- ListItem
- footerSection
- ListItem
- Reguła horyzontalna
- Wbudowany rysunek
- Wbudowany obraz
- Tekst
- NieobsługiwanElement (numer strony itp.)
- Akapit
- Reguła horyzontalna
- Wbudowany rysunek
- Wbudowany obraz
- Tekst
- NieobsługiwanElement (numer strony itp.)
- Tabela
- ListItem
- FootnoteSection
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.