使用google.visualization.Query我有一個正常運作的谷歌Web應用程序是相同的呈現[這裏]在谷歌的Web應用程序
你會在SpreadsheetApp.openByID code.gs注意應用.... 。..getRange()的GetValues()用於檢索數組稍後在轉換成一個DataTable控制板-JavaScript.html
工作Code.gs:
function doGet(e) {
var template = HtmlService.createTemplateFromFile('Index');
// Build and return HTML in IFRAME sandbox mode.
return template.evaluate()
.setTitle('Dashboard demo')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
/**
* Return all data from first spreadsheet as an array. Can be used
* via google.script.run to get data without requiring publication
* of spreadsheet.
* Returns null if spreadsheet does not contain more than one row.
*/
function getSpreadsheetData() {
var sheetId = '-key-';
var data = SpreadsheetApp.openById(sheetId).getSheets()[0].getRange("A1:D8").getValues();
return (data.length > 1) ? data : null;
}
我想用google.visualization.query而不是.getRange。
不行的 - 目前返回「谷歌」沒有定義
function doGet(e) {
var template = HtmlService.createTemplateFromFile('Index');
// Build and return HTML in IFRAME sandbox mode.
return template.evaluate()
.setTitle('Dashboard demo')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function getSpreadsheetData() {
var opts = {sendMethod: 'auto'};
var sheetId = '-key-';
var query = new google.visualization.Query('http://spreadsheets.google.com?key=' + sheetId, opts);
query.setQuery('select A, B, C, D');
query.send(draw)
}
function draw(response) {
if (response.isError()) {
alert('Error in query');
}
alert('No error')
}
我敢肯定有幾個問題 - 但我不能得到任何有用的錯誤返回調試問題。
我的問題是:
- 是有可能在code.gs使用google.visualization.query? (我讀過,使我相信,也許它不能用於服務器端??後/爲什麼)
- 如果是 - 如何避免「谷歌沒有定義」的錯誤
- 如果沒有 - 有沒有其他方法可以從服務器端「查詢」谷歌表格(最終目標是在檢索數據表時能夠靈活地省略列,執行聚合函數等)。這是不可能改變底層電子表格(即共享和發佈)
最後 - 我很抱歉,如果任何這是格式不好或不清楚。這是我在此的頭一篇博文。另外,我對javascript/apps腳本和google web應用程序的經驗有限,專業知識也較少。
根據我在別處讀到的內容 - URLFetchApp請求不在服務器端代碼的上下文中執行。因此,我認爲該表格需要「發佈」或與所有人共享才能發揮作用。 http://stackoverflow.com/questions/27725424/content-service-for-google-apps-script-returning-html-instead-of-json – KantKodit
你需要auth,是的,但谷歌提供的應用程序也是如此。因此,無論是使用URLFetchApp,還是我的建議,您在客戶端移動查詢(將變得更簡單和更清晰) – Adelin
我是否也需要指定一個選項卡(google表單中的aka表單)我通常認爲「gid = 0 「爲第一個標籤。您構建的網址構建器中的那塊土地在哪裏? – KantKodit