![](/img/trans.png)
[英]How to retrieve data from spreadsheet for chart google script. (Using HTML Service)
[英]Using Google Apps Script as service to retrieve data from spreadsheet
我是這項技術的新手,已經進行了很長時間的研究,但取得的成功有限。 (那里有很多說明和教程,但是其中很多已經過時了,不再相關或無法使用。)我想做的是創建一個GAS,將數據作為對象從Google工作表傳遞到javascript請求。 我有幾個限制-JS駐留在內部唯一的內部網上,我的Chrome(v58.0)設置限制XMLHttpRequest(在我的IE10版本中完美運行),我無法訪問Chrome中的開發者控制台(我可以在IE中),我不能使用JQuery或任何其他插件。 GAS方面的所有功能似乎都可以正常運行並提供應有的功能,但是JS似乎是問題所在。
當我直接訪問頁面時(通過doGet()產生的結果,將交付該對象的文本結果。所有數據都應以純文本形式顯示,應有的顯示)。
這是我的GAS(以我的身份執行,匿名):
function doGet() {
var oReturnLinks = [];
var sLinks = SpreadsheetApp.openById("secret").getSheetByName("links");
var oLinks = sLinks.getSheetValues(2, 1, -1, -1);
//loop over data and determine what to return
for (a=0;a<oLinks.length;a++) {
if (oLinks[a][0] == true && oLinks[a][1].trim() != '' && oLinks[a][2].trim() != '' && oLinks[a][3].trim() != '' && oLinks[a][4].trim() != '' ) {
oReturnLinks.push(oLinks[a]);
}
}
if (oReturnLinks.length > 0) {
return ContentService.createTextOutput(JSON.stringify(oReturnLinks)).setMimeType(ContentService.MimeType.JAVASCRIPT);
} else {
return ContentService.createTextOutput(JSON.stringify("no data returned")).setMimeType(ContentService.MimeType.JAVASCRIPT);
}
}
然后在我的Intranet上的JS中(這在IE10中有效):
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "https://script.google.com/macros/s/secret/exec", false);
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.send();
var response = JSON.parse(xhttp.responseText);
我也嘗試過這個:
var s
s = document.createElement("script");
s.src = "https://script.google.com/macros/s/secret/exec";
var oResult = JSON.stringify(s);
alert(oResult);
...但是會產生
{}
作為結果。
如果我將其添加到輸出內容中:
'(' + JSON.stringify(oReturnLinks) + ')'
我得到這個:
[Object HTMLScriptElement]
...作為輸出。
如果我將GAS中的mimetype更改為JSON,則會在IE中收到SEC7112錯誤(由於mime類型不匹配而被阻止),並且在Chrome中出現了一些我看不到的錯誤。
必須有一個跨瀏覽器解決方案嗎? 我覺得這很簡單,我很想念。
您正在將MIME類型設置為JAVASCRIPT而不是JSON。
return ContentService.createTextOutput(JSON.stringify(oReturnLinks))
.setMimeType(ContentService.MimeType.JSON);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.