Pra*_*tik 95 javascript google-api google-data-api google-api-js-client google-sheets-api
我想只使用JavaScript访问Google Spreadsheets(没有.NET,C#,Java等)
我来到这里并且震惊地知道JavaScript没有用于访问Google表格的API.
请告诉我如何使用JavaScript或其任何框架(如jQuery)访问(创建/编辑/删除)Google表格.
Mik*_*Kay 56
我创建了一个简单的javascript库,通过JSON api检索谷歌电子表格数据(如果它们已发布):
https://github.com/mikeymckay/google-spreadsheet-javascript
你可以在这里看到它:
http://mikeymckay.github.com/google-spreadsheet-javascript/sample.html
wes*_*cpy 47
2018年1月更新:当我去年回答这个问题时,我忽略了第三种使用JavaScript访问Google API的方法,那就是来自使用其客户端库的Node.js应用程序,所以我在下面添加了它.
这是2017年3月,这里的大部分答案已经过时 - 现在接受的答案是指使用较旧的API版本的库.更新的答案:您只能使用JavaScript 访问大多数Google API.Google今天提供了3种方法:
使用REST API时,您需要管理和存储源代码,并通过滚动自己的身份验证代码来执行授权(请参阅上面的示例).Apps脚本代表您处理此问题,管理数据(减少Ape-inago在答案中提到的"痛苦" ),并且您的代码存储在Google的服务器上.但是您的功能仅限于App Script提供的服务以及较旧的JS(ES3 +一些ES5功能和Google自定义),而REST API为开发人员提供了更广泛的API访问.但是,嘿,有选择是对的,对吗?总之,要回答OP原始问题而不是零,开发人员有三种使用JavaScript访问Google表格的方法.
Eva*_*ice 35
这是要点.
您可以使用Google表格API创建电子表格.目前无法使用API删除电子表格(请参阅文档).将Google Docs API视为创建和查找文档的途径.
您可以使用基于工作表的Feed在电子表格中添加/删除工作表.
更新电子表格是通过基于列表的订阅源或基于单元格的订阅源完成的.
读取电子表格可通过上面提及的任何谷歌电子表格的API来完成,或者只公布表,通过使用谷歌可视化API查询语言来查询数据(可在CSV,JSON或HTML表格格式返回结果).
忘了jQuery.如果你遍历DOM,jQuery才真正有价值.由于GAS(Google Apps Scripting)不使用DOM,因此jQuery将不会为您的代码添加任何价值.坚持香草.
我真的很惊讶没有人在答案中提供这些信息.它不仅可以完成,而且使用vanilla JS相对容易.唯一的例外是Google Visualization API相对较新(截至2011年).Visualization API也可以通过HTTP查询字符串URI专门工作.
Dan*_*scu 11
2016年更新:最简单的方法是使用Google Apps脚本API,特别是SpreadSheet服务.这适用于私人工作表,与需要发布电子表格的其他答案不同.
这将允许您将JavaScript代码绑定到Google表格,并在打开工作表时或选择菜单项(您可以定义)时执行它.
这是一个快速入门/演示.代码如下所示:
// 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;
}
Run Code Online (Sandbox Code Playgroud)
您还可以将此类脚本发布为Web应用程序.
有一个解决方案不需要发布电子表格.但是,工作表确实需要"共享".更具体地说,需要以具有链接的任何人可以访问电子表格的方式共享工作表.完成后,可以使用Google表格HTTP API.
首先,您需要一个Google API密钥.请访问:https: //developers.google.com/places/web-service/get-api-key NB.请注意向公众提供API密钥的安全后果:https://support.google.com/googleapi/answer/6310037
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true
Run Code Online (Sandbox Code Playgroud)
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}
Run Code Online (Sandbox Code Playgroud)
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{sheetName}!{cellRange}?key={yourAPIKey}
Run Code Online (Sandbox Code Playgroud)
现在掌握了这些信息,可以使用AJAX检索数据,然后在JavaScript中对其进行操作.我建议使用axios.
var url = "https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true";
axios.get(url)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
编辑:这是在google doc的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一起使用来访问经过身份验证的/私有的Feed.此示例使用DocList API."
以及编写与电子表格接口的小工具的示例:http://code.google.com/apis/spreadsheets/gadgets/
| 归档时间: |
|
| 查看次数: |
122726 次 |
| 最近记录: |