【发布时间】:2011-01-27 04:24:22
【问题描述】:
(据我所知)似乎没有用于编辑 Google Docs 的 API(不是电子表格,它们基于 HTML 的文档)。有没有人做过类似的事情?也许通过下载 HTML 版本、编辑和上传更改?
【问题讨论】:
标签: google-apps-script google-api google-docs google-api-client google-docs-api
(据我所知)似乎没有用于编辑 Google Docs 的 API(不是电子表格,它们基于 HTML 的文档)。有没有人做过类似的事情?也许通过下载 HTML 版本、编辑和上传更改?
【问题讨论】:
标签: google-apps-script google-api google-docs google-api-client google-docs-api
更新(2019 年 5 月) Google Docs API 于 2019 年 2 月正式命名为 launched。该文档位于下面我 7 月更新的链接中。发布几周后,我制作了一个high-level video overview,描述了使用 API 的邮件合并应用程序的外观。 (这不是完整的G Suite Dev Show 剧集,但确实链接到工作样本。)
更新(2018 年 7 月) Google Docs 团队在 Google Cloud NEXT '18 上预先宣布了即将推出的 REST API。有兴趣加入新 API 早期访问计划的开发人员应在 https://developers.google.com/docs 注册。下面的原始答案仍然存在,因为 REST API 将成为您以编程方式访问 Google 文档的第二种方式。
原始答案(2017 年 3 月):(大多数其他答案都已过时。)Google Docs 目前没有 REST API,但开发人员可以使用Google Apps Script 以编程方式访问 (CRUD) 文档,服务器- 托管在 Google 云端并在其中运行的 JavaScript 应用程序。如果您不熟悉 Apps 脚本或使用它编辑 Google 文档,这里有一些学习资源:
简单示例:如果您有一个(驱动器)文件 ID 为 DOCUMENT_ID_GOES_HERE 的现有文档,那么您基本上可以使用 Apps 脚本编辑它,将名称和电子邮件的伪“邮件合并”到文档中给定占位符 {NAME} 和 {ADDR}:
function mergeNameEmail() {
// Open a document by ID
var doc = DocumentApp.openById(DOCUMENT_ID_GOES_HERE);
// Access the body of the document
var body = doc.getBody();
// Merge name & address from template
body.replaceText("{NAME}", "Ima Developer");
body.replaceText("{ADDR}", "123 Main St, Anytown, XX 00000");
}
【讨论】:
Document List API 自 2012 年 9 月起已被弃用,看起来可能是 retired after April 2015。
正如问题所暗示的,使用 Drive API 更新 HTML 版本似乎是唯一的另一种方法。我一直在尝试这个,我遇到了一些问题。
可能还有更多问题。这些只是我最近几天发现的。
【讨论】:
不确定这是否是您正在寻找的确切内容,但您是否看过这里http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html 看起来它允许编辑内容(无论如何是v3.0)。
【讨论】:
有 com.google.api.services.drive.model.File.getExportLinks
您可以获取 Google Doc 作为 docx(例如),使用您最喜欢的 docx 编辑器对其进行编辑,然后再次上传。请参阅 the samples 在 docx4j 的上下文中执行此操作(以 GoogleDriveDownloadAsDocx 开头)。注意README。
或对任何其他导出格式执行相同操作。
【讨论】:
(2019) Google 现在为文档、幻灯片、表格、驱动器提供 API。
【讨论】:
Google Drive 的文档中有一个示例应用程序Dr. Edit。
【讨论】: