借助高级文档服务,您可以在 Apps 脚本中使用 Google 文档 API。此 API 与 Apps 脚本的内置文档服务非常相似,允许脚本读取、编辑 Google 文档中的内容以及设置其格式。在大多数情况下,内置服务更易于使用,但这项高级服务提供了一些额外的功能。
参考
如需详细了解此服务,请参阅 Google 文档 API 参考文档。与 Apps 脚本中的所有高级服务一样,高级文档服务使用与公共 API 相同的对象、方法和参数。如需了解详情,请参阅如何确定方法签名。
如需报告问题和寻求其他支持,请参阅 Docs API 支持指南。
示例代码
以下示例代码使用的是 API 的版本 1。
创建文档
此示例会创建一个新文档。
查找和替换文本
此示例查找并替换文档中的文本对。这在将模板文档副本中的占位符替换为数据库中的值时非常有用。
插入文本并设置样式
此示例会在文档开头插入新文本,并使用特定的字体和大小设置样式。请注意,如果可能,您应该在单个 batchUpdate
调用中批量处理多项操作,以提高效率。
朗读第一个段落
此示例记录文档中第一个段落的文本。由于 Google 文档 API 中段落具有结构化性质,因此这涉及合并多个子元素的文本。
最佳实践
批量更新
使用高级文档服务时,请将多个请求合并成一个数组,而不是在一个循环中调用 batchUpdate
。
错误做法 - 在循环中调用 batchUpdate
。
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
Docs.Documents.batchUpdate({
requests: [{
replaceAllText: ...
}]
}, docId);
}
正确做法 - 使用更新数组调用 batchUpdate
。
var requests = [];
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
requests.push({ replaceAllText: ... });
}
Docs.Documents.batchUpdate({
requests: requests
}, docId);