資料查詢

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

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

目錄

總覽

資料來源是支援圖表工具資料來源資料來源的網路服務。您可以將 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.
  ...
}

如要透過 Apps Script 傳送查詢,請務必使用 IFRAME 模式

處理回應

要求傳回時,將呼叫回應處理常式函式。傳送至回應處理常式函式的參數屬於 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 (逗號分隔值) 資料建構圖表,您有兩種選擇。請將 CSV 資料手動轉換為 Google 圖表資料資料表格式,或將 CSV 檔案放到提供圖表的網路伺服器上,然後使用本頁的技術進行查詢。

更多資訊