如何才能使用JavaScript访问Google表格电子表格?

我想只使用JavaScript访问Google Spreadsheets。 (没有.NET C#,Java)

我来到这里 ,很震惊地知道JavaScript不能访问Google Spreadsheet。

请告诉我如何使用JavaScript或其任何框架(如jQuery等)访问(CREATE / EDIT / DELETE)Google Spreadsheets。

我已经创build了一个简单的JavaScript库,通过JSON API检索谷歌电子表格数据(如果他们发布):

https://github.com/mikeymckay/google-spreadsheet-javascript

你可以在这里看到它的行动:

http://mikeymckay.github.com/google-spreadsheet-javascript/sample.html

这是Gist。

您可以使用Google表格API创build电子表格 。 目前无法使用API​​删除电子表格(请阅读文档)。 可以将Google Docs API看作创build和查找文档的path。

您可以使用基于工作表的供稿添加/删除电子表格中的工作表 。

更新电子表格是通过基于列表的订阅源或基于单元格的订阅源完成的 。

阅读电子表格可以通过上面提到的Google Spreadsheets API来完成,也可以通过使用Google Visualization API查询语言查询数据(可以以CSV,JSON或HTML表格格式返回结果)来完成。


忘记jQuery。 如果你遍历DOM,jQuery只有真正的价值。 由于GAS(Google Apps Scripting)不使用DOM,因此jQuery不会为您的代码添加任何值。 坚持香草。

我真的很惊讶,没有人提供这个信息的答案呢。 不仅可以这样做,但使用香草JS相对容易。 唯一的例外是相当新的Google Visualization API(截至2011年)。 Visualization API也专门通过HTTP查询stringURI工作。

这是2017年 ,这里的答案大部分已经过时 – 现在接受的答案是指使用旧的API版本的库。 更新的答案:您只能使用JavaScript访问大多数Google API 。 Google今天提供了两种主要的方法:

  1. 正如Dan Dascalescu的回答中所提到的那样 ,您可以使用Google Apps脚本 – Google-in-Cloud云解决scheme。 也就是说,在Google服务器上运行的浏览器之外的非节点服务器端JS应用程序。
    • 您可以在Apps脚本代码编辑器中编写应用程序,他们可以通过两种不同的方式访问Google表格:
      1. 电子表格服务 (本地对象支持; 使用指南 ); 本土比较容易,但一般比…
      2. Google表格高级服务 (直接访问最新的Google表格REST API [见下文]; 使用指南 )
    • Apps脚本也支持附加组件 ,您可以使用表格附加组件扩展表格UIfunction(如这些 )
    • 您甚至可以编写扩展Android上的Sheets应用的 移动附加组件
    • 要了解有关使用Apps脚本的更多信息,请查看我创build的这些video (大部分涉及使用表格)
  2. 您还可以使用JavaScript的Google API客户端库来访问客户端的最新Google表格REST API 。
    • 以下是使用客户端库的一些通用示例
    • 最新的Sheets API(v4)在Google I / O 2016上发布; 它比以前的所有版本都强大得多,让开发者可以通过编程访问表格界面中的大多数function
    • 这里是API的JavaScript快速入门 ,以帮助您开始
    • 以下是针对核心API请求的示例“配方” (JSON有效负载)
    • 如果你对Python没有“过敏”(如果你是,假装它是伪代码;)),我用更多的“真实世界”样本制作了几个使用API​​的video,你可以学习并迁移到JS注意:即使它是Python代码,大多数API请求都具有JSON,并且可以轻松地移植到JS中):
      1. 将SQL数据迁移到工作表 (代码深潜后 )
      2. 使用Sheets API格式化文本 (代码深入文章 )
      3. 从电子表格数据生成幻灯片 (代码深潜后 )

使用REST API,您需要pipe理和存储您的源代码,并通过滚动您自己的authentication代码来执行授权(请参阅上面的示例)。 Apps脚本代表您pipe理数据(减lessApe-in​​ago在答案中提到的“痛苦”),您的代码存储在Google的服务器上。 但是,您的function仅限于应用程序脚本提供的服务,以及较旧的JS(ES3 +一些ES5function和Google自定义),而REST API则为开发人员提供了更广泛的API访问权限。 但是,嘿,有好的select,对吧? 总之,为了回答OP的原始问题,而不是零,开发人员有两种使用JavaScript访问Google表格的方法。

2016年更新 :最简单的方法是使用Google Apps脚本API,特别是SpreadSheet服务 。 这适用于私人表单,不同于需要发布电子表格的其他答案。

这可以让您将JavaScript代码绑定到Google表单,并在打开表单或select菜单项(您可以定义)时执行该代码。

这是一个快速入门/演示 。 代码如下所示:

// Let's say you have a sheet of First, Last, email and you want to return the email of the // row the user has placed the cursor on. function getActiveEmail() { var activeSheet = SpreadsheetApp.getActiveSheet(); var activeRow = .getActiveCell().getRow(); var email = activeSheet.getRange(activeRow, 3).getValue(); return email; } 

您也可以发布这样的脚本作为Web应用程序 。

编辑:这是在谷歌文档的API被释放之前回答。 请参阅Evan Plaice的回答和Dan Dascalescu的回答以获取更新的信息。

它看起来可以,但使用起来很痛苦。 它涉及使用Google数据API。

http://gdatatips.blogspot.com/2008/12/using-javascript-client-library-w-non.html

“JavaScript客户端库拥有日历,通讯录,Blogger和Google财经的辅助方法,但是您可以将其用于任何Google Data API来访问已validation/私有的Feed,本示例使用DocList API。

以及编写与电子表格交互的小工具的示例: http : //code.google.com/apis/spreadsheets/gadgets/

“访问Google文档的JavaScript”将是繁琐的实现,而且Google文档也不是那么容易实现。 我有一些很好的链接,通过它可以实现js对gdoc的访问:

http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#UploadingDocs

http://code.google.com/apis/spreadsheets/gadgets/

http://code.google.com/apis/gdata/docs/js.html

http://www.mail-archive.com/google-help-dataapi@googlegroups.com/msg01924.html

可能是这些会帮助你

对于这种types的东西,您应该使用Google Fusion Tables 。 该API是为此目的而devise的。

对不起,这是一个糟糕的答案。 显然这是近两年的问题 ,所以不要屏住呼吸。

这是官方的要求,你可以“星”

可能最接近你可以用Google App Engine / Python来滚动你自己的服务,并用你自己的JS库暴露你需要的任何子集。 虽然我很想自己有一个更好的解决scheme。

在这个瞬息万变的世界里,这些链接中的大部分都是obsolet。

现在您可以使用Google Drive Web API

  • Java的
  • PHP
  • Javacript
  • 。净
  • python
  • ruby
  • 和别的…

你可以通过使用Sheetsee.js和tabletop.js来完成

  1. 例如从git
  2. 另一个例子
Interesting Posts