(2020 年 10 月):现在是 2020 年,这个问题真的过时了。Google Documents List API于 2012年弃用,并于 2015 年关闭,取而代之的是Google Drive API。
Drive API 能够毫无问题地导入(上传和转换)Word 文件,无论是使用图像创建还是更新为 Google Docs 格式。下面是这两种情况的一些伪代码(Python)。第一次上传一个名为的Word文件person.docx
,其中包含一个图像。上传后,会向用户显示一条消息,您可以验证图像是否在 Google Doc 中。
DOCX_FILE = 'person.docx'
DOCS_MIME = 'application/vnd.google-apps.document'
:
: # credentials code for user acct auth (OAuth client ID) or service acct auth
:
DRIVE = discovery.build('drive', 'v3', ...) # http= or creds= dep on auth type
body = {'name': DOCX_FILE, 'mimeType': DOCS_MIME}
res = DRIVE.files().create(media_body=DOCX_FILE, body=body,
fields='name,mimeType').execute()
print('Uploaded "%s" (as %s)' % (res['name'], res['mimeType']))
正如 OP 所提到的,创建文件和以前一样完美。如果您编辑现有 Doc,您需要像以前一样在文件有效负载之外提供其 Drive 文件 ID,并调用files().update()
而不是files().create()
,它也可以正常工作:
DRIVE_ID = 'YOUR_FILE_ID'. # existing file in Drive
DOCX_FILE = 'person.docx' # Word file to replace the above file with
DOCS_MIME = 'application/vnd.google-apps.document'
:
: # credentials code as above
:
DRIVE = discovery.build('drive', 'v3', ...) # same as above
body = {'name': DOCX_FILE, 'mimeType': DOCS_MIME}
res = DRIVE.files().update(fileId=DRIVE_ID, media_body=DOCX_FILE,
body=body, fields='name,mimeType').execute()
print('Updated "%s" (as %s)' % (res['name'], res['mimeType']))
如果您不熟悉 Drive API,请继续阅读。要操作Drive中已有的文档,特别是面向文档的操作,您将使用 Google Docs、Sheets 和 Slides API,但要执行文件级访问,例如导入/导出、复制、移动、重命名等。 ,请改用Google Drive API。如果您是 Drive API 的新手,除了上述之外,这里还有一些示例:
(*) - TL;DR:将纯文本文件上传到云端硬盘,导入/转换为 Google Docs 格式,然后将该 Doc 导出为 PDF。上面的帖子使用 Drive API v2;这篇后续帖子描述了将其迁移到 Drive API v3,这是一个结合了“穷人转换器”帖子的开发者视频。
要了解有关如何在 Python 中使用 Google API 的更多信息,请查看我的博客以及我制作的各种 Google 开发人员视频(系列 1和系列 2)。