Расширенная служба Документов позволяет использовать API Документов Google в скриптах приложений. Подобно встроенному сервису Docs Apps Script, этот API позволяет сценариям читать, редактировать и форматировать контент в Документах Google. В большинстве случаев встроенную службу проще использовать, но эта расширенная служба предоставляет несколько дополнительных функций.
Ссылка
Подробную информацию об этом сервисе можно найти в справочной документации API Документов. Как и все расширенные службы в Apps Script, расширенная служба Документов использует те же объекты, методы и параметры, что и общедоступный API. Дополнительные сведения см. в разделе Как определяются сигнатуры методов .
Чтобы сообщить о проблемах и получить другую поддержку, ознакомьтесь с руководством по поддержке Docs API .
Пример кода
В приведенном ниже примере кода используется версия 1 API.
Создать документ
В этом примере создается новый документ.
Найти и заменить текст
Этот пример находит и заменяет пары текста на всех вкладках документа. Это может быть полезно при замене заполнителей в копии документа-шаблона значениями из базы данных.
Вставка и оформление текста
В этом примере новый текст вставляется в начало первой вкладки документа и стилизирует его с использованием определенного шрифта и размера. Обратите внимание: по возможности вам следует объединить несколько операций в один вызов batchUpdate
для повышения эффективности.
Прочитай первый абзац
В этом примере регистрируется текст первого абзаца первой вкладки документа. Из-за структурированного характера абзацев в API Документов это предполагает объединение текста нескольких подэлементов.
Лучшие практики
Пакетные обновления
При использовании расширенной службы Документов объединяйте несколько запросов в массив, а не вызывайте batchUpdate
в цикле.
Не делайте этого — вызывайте batchUpdate
в цикле.
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
Docs.Documents.batchUpdate({
requests: [{
replaceAllText: ...
}]
}, docId);
}
Do — вызвать batchUpdate
с массивом обновлений.
var requests = [];
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
requests.push({ replaceAllText: ... });
}
Docs.Documents.batchUpdate({
requests: requests
}, docId);