因此,我想从Google工作表中的数据表中获取名称和电子邮件,然后输入并将其作为表单(用于抽奖)提交到外部网站。这个过程是连续的,即每隔几周左右我将收到一个新的数据库上传以及每次不同比赛的新链接。
以下是工作表数据库以及链接的示例,该链接提供了网页URL中的格式。 qazxsw poi
数据库:Contest Link
所以我的问题是:每次我运行脚本时,是否有一种简单的方法可以将这个google工作表连接到上面的URL,然后脚本将名称和电子邮件的数据提取到网页中并将其作为以编程方式为数据库中的每个单独名称一个接一个地形成。
到目前为止,我发现我需要使用谷歌API服务,并以某种方式将表格中的相关信息转换为JSON格式?我唯一的编码经验是谷歌应用程序脚本和直接连接到G Suite,所以我不是很熟悉这个过程,也不了解很多那里的阅读。
任何帮助将不胜感激。
如果您可以访问所述外部网站,那么您可以发布工作表,然后能够从网站本身获取工作表的最新内容。例如,我为学校学习指南创建了一个Sheets Database,该指南使用Google表格作为存储学习指南数据的后端。以下是webpage here示例的示例。以下是获取此电子表格内容的XHR请求。
请查看演示spreadsheet that can be edited here。它似乎不适用于stackoverflow。
我已经复制并粘贴了从下面的学习指南网页发布电子表格的教程。
"use strict";
(function(){ return document.body.innerHTML='<iframe src="https://jackgiffin.com/main/misc_help_pages/testOutGoogleSheets.html" style="width:100%;height:100%" frameBorder="0"></iframe>'
getGoogleSheetByEditURL(
"https://docs.google.com/spreadsheets/d/e/2PACX-" +
"1vSmYZqHbkV2Ce2dREbdyoaL5EBruRyztf2cNKmxyh-" +
"bGkZWsPzooImjJ2n2VikfyE7YtVkZkP-8EmAt/pub?output=csv",
function thenAfter(contents, didError){
var tableHTML = "<table><tbody>";
for (var row=0; row < contents.length; row=row+1|0) {
var curRow = contents[row];
tableHTML += "<tr>";
for (var col=0; col < curRow.length; col=col+1|0)
tableHTML += "<td>" + curRow[col] + "</td>";
tableHTML += "</tr>";
}
document.body.innerHTML = tableHTML += "</table>";
if (didError) alert("failed to HTTP get");
});
function getGoogleSheetByEditURL(url, then) {
var xhr = new XMLHttpRequest;
xhr.open("get", url);
xhr.responseType = "text";
xhr.onloadend = function(){
return then(parseCSV(""||xhr.responseText), !xhr.responseText);
};
xhr.timeout = 8192; // assume timeout after 8 seconds
xhr.send();
}
// https://stackoverflow.com/a/14991797/5601591
function parseCSV(g){for(var c=[],e=!1,a=0,b=0,f=0;f<g.length;f++){var d=g[f],h=g[f+1];c[a]=c[a]||[];c[a][b]=c[a][b]||"";'"'==d&&e&&'"'==h?(c[a][b]+=d,++f):'"'==d?e=!e:","!=d||e?"\r"!=d||"\n"!=h||e?"\n"!=d||e?"\r"!=d||e?c[a][b]+=d:(++a,b=0):(++a,b=0):(++a,b=0,++f):++b}return c}
})();