Zaawansowana usługa Dokumenty pozwala korzystać z interfejsu Google Docs API w Apps Script. Ten interfejs API, podobnie jak wbudowana usługa Dokumenty w Apps Script, umożliwia skryptom odczytywanie, edytowanie i formatowanie treści w Dokumentach Google. W większości przypadków wbudowana usługa jest łatwiejsza w użyciu, ale ta zaawansowana usługa ma jednak kilka dodatkowych funkcji.
Dokumentacja
Szczegółowe informacje o tej usłudze znajdziesz w dokumentacji interfejsu Docs API. Podobnie jak wszystkie usługi zaawansowane w Apps Script, zaawansowana usługa Dokumenty korzysta z tych samych obiektów, metod i parametrów co publiczny interfejs API. Więcej informacji znajdziesz w artykule Jak określane są podpisy metod.
Aby zgłosić problemy i znaleźć inną pomoc, zapoznaj się z przewodnikiem po interfejsie Docs API.
Przykładowy kod
W przykładowym kodzie poniżej użyto wersji 1 interfejsu API.
Utworzenie dokumentu
Ten przykład tworzy nowy dokument.
Znajdowanie i zastępowanie tekstu
W tym przykładzie znajdujemy i zastępujemy pary tekstu w dokumencie. Może to być przydatne podczas zastępowania obiektów zastępczych w kopii dokumentu szablonu wartościami z bazy danych.
Wstawianie tekstu i zmiana jego stylu
Ten przykład wstawia nowy tekst na początku dokumentu i dodaje style, jeśli mają określoną czcionkę i określony rozmiar. Pamiętaj, że jeśli to możliwe, należy zgrupować wiele operacji w 1 wywołaniu batchUpdate
, aby zwiększyć wydajność.
Przeczytaj pierwszy akapit
Ten przykładowy akapit zapisuje tekst pierwszego akapitu dokumentu. Ze względu na strukturę akapitów interfejsu Docs API trzeba połączyć tekst wielu elementów podrzędnych.
Sprawdzone metody
Aktualizacje zbiorcze
Jeśli korzystasz z zaawansowanej usługi Dokumenty, połącz wiele żądań w tablicy, zamiast wywoływać funkcję batchUpdate
w pętli.
Nie – wywołaj zapętloną metodę użytkownika batchUpdate
.
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
Docs.Documents.batchUpdate({
requests: [{
replaceAllText: ...
}]
}, docId);
}
Zalecane – wywołaj batchUpdate
z tablicą aktualizacji.
var requests = [];
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
requests.push({ replaceAllText: ... });
}
Docs.Documents.batchUpdate({
requests: requests
}, docId);