首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式在Google Docs中创建文档?

如何以编程方式在Google Docs中创建文档?
EN

Stack Overflow用户
提问于 2010-04-24 23:04:23
回答 4查看 31.8K关注 0票数 30

documentation for Google Documents List API似乎在说你可以创建一个本地文档并上传它。有没有办法通过 Google Docs上创建和编辑文档API?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-24 23:29:51

虽然the docs称之为“上传”,但一切都归结为发送一个适当格式化的HTTP POST请求,所以当然它实际上可以是一个新的创建,而不是一个已有文件的实际“上传”。(通过POST请求创建类似于通常所描述的REST API,不过在实际的REST中,您通常会使用PUT请求来代替)。

您只需要创建一个表示文档的blob数据块,格式为here --根据您的编程语言,最简单的格式可能是text/csv (电子表格)和application/rtf (文本文档) --然后放入适当格式化的POST数据中。例如,要以最简单的方式(无元数据)制作电子表格,您可以使用POST命令执行以下操作:

代码语言:javascript
复制
POST /feeds/default/private/full HTTP/1.1
Host: docs.google.com
GData-Version: 3.0
Authorization: <your authorization header here>
Content-Length: 81047
Content-Type: text/csv
Slug: Example Spreadsheet

ColumnA, ColumnB
23, 45

每种特定的编程语言都提供了专门的应用程序接口,可以帮助完成这项不太难的任务;例如,在Python中,根据the docs,应用程序接口建议使用ETags,以避免在多个客户端同时“上传”(即创建或更新文档)时覆盖更改。但是直接准备POST总是可能的,因为几乎-REST API被记录为,这是所有特定语言API的底层协议。

票数 29
EN

Stack Overflow用户

发布于 2012-06-08 07:02:18

Alex的回答虽然毫无疑问是正确的,但却回避了一个问题:“我如何通过Google Docs API做到这一点?”

这里有一种方法(在Python中,因为我就是这样的人):

代码语言:javascript
复制
import gdata.docs.service
import StringIO

client = gdata.docs.service.DocsService()
client.ClientLogin(username, password,
                   source='Spreadsheet Creation Example')

content = 'COL_A, COL_B, COL_C, COL_D\ndata1, data2, data3, data4'
ms = gdata.MediaSource(file_handle=StringIO.StringIO(content),
                       content_type='text/csv',
                       content_length=len(content))
entry = client.Upload(ms, 'Test Spreadsheet')

这是我在http://code.google.com/p/gdata-python-client/source/browse/tests/gdata_tests/docs/service_test.py中找到的一些技术的小混搭,我是通过Google Group的GData Docs API通过this post找到的。

关键的见解(至少对我来说)是:

  1. 意识到MediaSource构造器的形参"file_handle“将接受任何类似文件的对象,
  2. 发现(正如OP在Google Group帖子中提到的那样)单元测试是示例的重要来源

(我找不到Alex的文档链接所引用的特定于Python的开发人员指南--可能是在谷歌将文档资产从code.google.com转移到developers.google.com的过程中丢失或被埋没了。(Alex的链接现在重定向到更通用的文档,该文档主要显示.NET和Java示例,但只显示少量Python。)

票数 13
EN

Stack Overflow用户

发布于 2019-02-05 06:09:55

截至2019年2月4日,Google Docs现在有了REST API。

请参阅文档:https://developers.google.com/docs/api/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2704902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档