本頁說明如何將查詢傳送至支援圖表工具資料來源通訊協定的資料來源。
總覽
資料來源是支援圖表工具資料來源通訊協定的網路服務。您可以向資料來源傳送 SQL 查詢,做為回應時,您會收到已填入正確資訊的資料表。資料來源包括 Google 試算表和 SalesForce。
傳送要求
如何傳送要求:
- 使用您資料來源的網址將 Query 物件例項化。網址應根據該資料來源解讀的語法,指出所要求的資料。
- 視需要指定要求選項,例如在
Query
物件建構函式中將傳送方法當做選用的第二個參數 (詳情請參閱查詢建構函式的opt_options
參數): - 視需要新增查詢字串字串,藉此排序或篩選結果,然後再傳送要求。資料來源並非支援圖表工具資料來源查詢語言。如果資料來源不支援查詢語言,系統會忽略 SQL 查詢字串,但仍會傳回
DataTable
。查詢語言為 SQL 語言變體;請參閱這裡的完整查詢語言語法。 - 傳送查詢,指定收到回應時將呼叫的回呼處理常式:詳情請參閱下一節。
以下是傳送 Google 試算表儲存格範圍資料要求的範例;如要瞭解如何取得 Google 試算表的網址,請參閱這裡:
function initialize() { var opts = {sendMethod: 'auto'}; // Replace the data source URL on next line with your data source URL. var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts); // Optional request to return only column C and the sum of column B, grouped by C members. query.setQuery('select C, sum(B) group by C'); // Send the query with a callback function. query.send(handleQueryResponse); } function handleQueryResponse(response) { // Called when the query response is returned. ... }
處理回應
要求傳回時,系統會呼叫您的回應處理常式函式。傳入回應處理常式函式的參數屬於 google.visualization.QueryResponse 類型。如果要求成功,回應會包含資料表 (類別 google.visualization.DataTable
)。如果要求失敗,回應會包含錯誤相關資訊,且無 DataTable
。
回應處理常式應執行下列操作:
- 呼叫
response.isError()
,確認要求是否成功或失敗。您不需要向使用者顯示任何錯誤訊息;視覺化程式庫會在容器<div>
中顯示錯誤訊息。不過,如要手動處理錯誤,可以使用goog.visualization.errors
類別顯示自訂訊息 (如需自訂錯誤處理範例,請參閱查詢包裝函式範例)。 - 如果要求成功,回應會包含
DataTable
,您可以呼叫getDataTable()
加以擷取。把這份圖表傳送到圖表。
下列程式碼示範如何處理先前的要求繪製圓餅圖的要求:
function handleQueryResponse(response) { if (response.isError()) { alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; } var data = response.getDataTable(); var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, {width: 400, height: 240, is3D: true}); }
讀取 CSV 檔案
如要利用 CSV (逗號分隔值) 資料建立圖表,您有兩種選擇:
- 將資料轉換為 Google 圖表資料表格式
- 將 CSV 檔案放在提供圖表的網路伺服器上,然後使用本頁中的技巧查詢該檔案。
更多資訊
- 查詢語言語法 - 說明資料查詢所用語言的語法。
- 查詢類別 - 包裝查詢的類別參照頁面。
- QueryResponse 類別 - 用來包裝回應回應的類別的參考頁面。