我一直在做一些研究,由于某些原因无法在任何地方找到一个很好的例子,我开始怀疑它是否有可能。
我要做的是让我的扩展程序在Google电子表格中写入数据,以便将该工作表用作数据库。
有没有人有任何我可以遵循的文件?考虑到Spreadsheet API似乎不允许JavaScript,甚至可能吗?
感谢。
答案 0 :(得分:11)
是的,这绝对是可能的。我已经使用Javascript广泛使用了Spreadsheet API。您需要使用此处记录的API的协议版本:https://developers.google.com/google-apps/spreadsheets/
这需要使用OAuth2发送已签名的请求(旧的身份验证协议不再可靠。)所以我建议使用像JSO这样的OAuth2库。 https://github.com/andreassolberg/jso
编写javascript时,您需要编写创建XML字符串的函数来与Protocol API进行交互。解析答案非常简单。我已经包含了我使用过的代码片段。您还可以在此处使用JQuery查看我对相关问题的回答。 JQuery .ajax POST to Spreadsheets API?
function appendSpreadsheet(){
//Constructs the XML string to interface with the Spreadsheet API.
//This function adds the value of the param foo to the cell in the first empty row in the column called 'columnTitle'.
//The Spreadsheet API will return an error if there isn't a column with that title.
function constructAtomXML(foo){
var atom = ["<?xml version='1.0' encoding='UTF-8'?>",
'<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">',//'--END_OF_PART\r\n',
'<gsx:columnTitle>',foo,'</gsx:columnTitle>',//'--END_OF_PART\r\n',
'</entry>'].join('');
return atom;
};
var params = {
'method': 'POST',
'headers': {
'GData-Version': '3.0',
'Content-Type': 'application/atom+xml'
},
'body': constructAtomXML(foo)
};
var docId //Get this from the spreadsheet URL or from the Google Drive API.
var worksheetId = 'od6'; //The worksheet Id for the first sheet is 'od6' by default.
url = 'https://spreadsheets.google.com/feeds/list/'+docId+'/'+worksheetId+'/private/full';
sendSignedRequest(url, handleSuccess, params); //Use your OAuth2 lib
}
答案 1 :(得分:9)
我认为你有几个月前的问题。我正在寻找一些库来做同样但却找不到任何库,所以我最终创建了一个名为gsloader的库。我在此jiraProgressTracker Chrome扩展程序中使用此库。 Chrome扩展程序正在开发中,但gsloader库已准备好使用。
这是你需要做的。
以下是一些代码段
//授权
var clientId = "<your client id>";
GSLoader.setClientId(clientId);
//加载现有的电子表格
GSLoader.loadSpreadsheet("spreadsheet id");
//创建电子表格
GSLoader.createSpreadsheet("spreadsheet id")
有足够的方法和对象可供使用,而不是在这里提及所有我将尝试提供文档。
请让我知道,它如何与您合作。