資料查詢

本頁面說明如何將查詢傳送至支援圖表工具資料來源通訊協定的資料來源。

總覽

資料來源是支援圖表工具資料來源資料來源的網路服務。您可以將 SQL 查詢傳送至資料來源,然後您就會收到一個內含適當資訊的 DataTable。資料來源包括 Google 試算表和 SalesForce。

傳送要求

如何傳送要求:

  1. 使用資料來源網址將 Query 物件執行個體化。網址應根據要求指定的語法,指出要求的資料。
  2. 視需要指定在 Query 物件建構函式中,將方法做為選用第二個參數的傳送選項 (詳情請參閱「查詢建構函式」的 opt_options 參數):
  3. 視需要新增查詢語言字串來排序或篩選結果,然後傳送要求。資料來源不需要圖表圖表的資料來源查詢語言。如果資料來源不支援查詢語言,將會忽略 SQL 查詢字串,但仍會傳回 DataTable。查詢語言為 SQL 語言變體,請參閱查詢語言語法的完整說明。
  4. 傳送查詢,指定在收到回應時呼叫的回呼處理常式:詳情請參閱下一節。

以下示範如何傳送 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

您的回應處理常式應執行下列事項:

  1. 透過呼叫 response.isError() 檢查要求是否成功。您無須向使用者顯示任何錯誤訊息;視覺化程式庫會在您的容器 <div> 中顯示錯誤訊息。不過,如果您想手動處理錯誤,可以使用 goog.visualization.errors 類別來顯示自訂訊息 (如需自訂錯誤處理的範例,請參閱查詢包裝函式範例)。
  2. 如果要求成功,回應會包含 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 檔案放到提供圖表的網路伺服器上,並使用本頁的技術進行查詢。

更多資訊