Class DataSourceTable

DataSourceTable

存取及修改現有的資料來源資料表。如要在新工作表中建立新的資料來源表格,請按照下列步驟操作: 使用 Spreadsheet.insertSheetWithDataSourceTable(spec)

請勿將這個類別與 BigQuery 資料來源搭配使用。

本例說明如何建立新的資料來源資料表。

SpreadsheetApp.enableBigQueryExecution();
var spreadsheet = SpreadsheetApp.getActive();
var spec = SpreadsheetApp.newDataSourceSpec()
           .asBigQuery()
           .setProjectId('big_query_project')
           .setRawQuery('select @FIELD from table limit @LIMIT')
           .setParameterFromCell('FIELD', 'Sheet1!A1')
           .setParameterFromCell('LIMIT', 'namedRangeCell')
           .build();
// Starts data execution asynchronously.
var dataSheet = spreadsheet.insertSheetWithDataSourceTable(spec);
var dataSourceTable = dataSheet.getDataSourceTables()[0];
// waitForCompletion() blocks script execution until data execution completes.
dataSourceTable.waitForCompletion(60);
// Check status after execution.
Logger.log("Data execution state: %s.", dataSourceTable.getStatus().getExecutionState());

本例說明如何編輯資料來源。

SpreadsheetApp.enableBigQueryExecution();
var dataSheet = SpreadsheetApp.getActive().getSheetByName("Data Sheet 1");
var dataSourceTable = dataSheet.getDataSourceTables()[0];
var dataSource = dataSourceTable.getDataSource();
var newSpec = dataSource.getSpec()
              .copy()
              .asBigQuery()
              .setRawQuery('select name from table limit 2')
              .removeAllParameters()
              .build();
// Updates data source specification and starts data execution asynchronously.
dataSource.updateSpec(newSpec);
// Check status during execution.
Logger.log("Data execution state: %s.", dataSourceTable.getStatus().getExecutionState());
// waitForCompletion() blocks script execution until data execution completes.
dataSourceTable.waitForCompletion(60);
// Check status after execution.
Logger.log("Data execution state: %s.", dataSourceTable.getStatus().getExecutionState());

方法

方法傳回類型簡短說明
addColumns(columnNames)DataSourceTable在資料來源表格中新增欄。
addFilter(columnName, filterCriteria)DataSourceTable在資料來源表中加入篩選器。
addSortSpec(columnName, ascending)DataSourceTable在資料來源表格中新增資料欄的排序規格。
addSortSpec(columnName, sortOrder)DataSourceTable對資料來源表格中的資料欄新增排序規格。
cancelDataRefresh()DataSourceTable如果這個物件正在執行中,系統會取消相關聯的資料重新整理作業。
forceRefreshData()DataSourceTable無論目前狀態為何,都會重新整理此物件的資料。
getColumns()DataSourceTableColumn[]取得已新增至資料來源資料表的所有資料來源欄。
getDataSource()DataSource取得與物件連結的資料來源。
getFilters()DataSourceTableFilter[]傳回套用至資料來源資料表的所有篩選器。
getRange()Range取得這個資料來源表格跨越的 Range
getRowLimit()Integer傳回資料來源資料表的列數上限。
getSortSpecs()SortSpec[]取得資料來源資料表中的所有排序規格。
getStatus()DataExecutionStatus取得物件的資料執行狀態。
isSyncingAllColumns()Boolean傳回資料來源資料表是否要同步處理關聯資料來源中的所有資料欄。
refreshData()DataSourceTable重新整理物件資料。
removeAllColumns()DataSourceTable移除資料來源表格中的所有資料欄。
removeAllSortSpecs()DataSourceTable移除資料來源資料表中的所有排序規格。
setRowLimit(rowLimit)DataSourceTable更新資料來源資料表的資料列限制。
syncAllColumns()DataSourceTable將相關聯資料來源中目前和日後的所有資料欄同步到資料來源資料表。
waitForCompletion(timeoutInSeconds)DataExecutionStatus等待目前的執行作業完成,並在指定的秒數後逾時。

內容詳盡的說明文件

addColumns(columnNames)

在資料來源表格中新增資料欄。

參數

名稱類型說明
columnNamesString[]要新增的資料欄名稱清單。

回攻員

DataSourceTable:用於鏈結的資料來源資料表。

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addFilter(columnName, filterCriteria)

新增套用至資料來源表格的篩選器。

參數

名稱類型說明
columnNameString要套用這個篩選器的資料欄名稱。
filterCriteriaFilterCriteria要套用的篩選條件。

回攻員

DataSourceTable:用於鏈結的資料來源資料表。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addSortSpec(columnName, ascending)

對資料來源表格中的資料欄新增排序規格。

參數

名稱類型說明
columnNameString要排序的資料欄名稱。
ascendingBoolean如果是 true,則會以遞增順序排序資料欄;如為 false,排序 資料欄就會以遞減順序排序。

回攻員

DataSourceTable:用於鏈結的資料來源工作表。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addSortSpec(columnName, sortOrder)

對資料來源表格中的資料欄新增排序規格。

參數

名稱類型說明
columnNameString要排序的資料欄名稱。
sortOrderSortOrder排列順序。

回攻員

DataSourceTable:用於鏈結的資料來源工作表。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

cancelDataRefresh()

如果此物件目前正在執行,則取消與該物件相關聯的資料重新整理作業。

以下範例說明如何取消公式重新整理作業。

const spreadsheet = SpreadsheetApp.getActive();
const formula = spreadsheet.getDataSourceFormulas()[0];
// Cancel the ongoing refresh on the formula.
formula.cancelDataRefresh();

如果未啟用資料來源類型,就會擲回例外狀況。使用 SpreadsheetApp#enable...Execution() 方法為特定資料來源啟用資料執行程序 類型。

回攻員

DataSourceTable:資料物件。

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

forceRefreshData()

無論目前狀態為何,都會重新整理此物件的資料。請參閱 refreshData(): 瞭解詳情如要取消目前正在執行的此物件重新整理作業,請參閱 cancelDataRefresh()

如果未啟用資料來源類型,就會擲回例外狀況。使用 SpreadsheetApp#enable...Execution() 方法,為特定資料來源類型啟用資料執行程序。

回攻員

DataSourceTable:資料物件。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getColumns()

取得已新增至資料來源資料表的所有資料來源欄。

回攻員

DataSourceTableColumn[]:資料來源資料表的資料欄清單。

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getDataSource()

取得與物件連結的資料來源。

回攻員

DataSource:資料來源。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getFilters()

傳回套用至資料來源資料表的所有篩選器。

回攻員

DataSourceTableFilter[] — 套用至資料來源資料表的所有篩選器陣列。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

取得這個資料來源表格跨越的 Range

回攻員

Range:範圍。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRowLimit()

傳回資料來源資料表的列數上限。

回攻員

Integer:資料來源資料表的列數上限,如果未設定上限,且資料表使用 Google 試算表 UI 中的預設上限,則為 null

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getSortSpecs()

取得資料來源資料表中的所有排序規格。

回攻員

SortSpec[]:排序規格清單。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getStatus()

取得物件的資料執行狀態。

回攻員

DataExecutionStatus:資料執行狀態。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

isSyncingAllColumns()

傳回資料來源資料表是否要同步處理關聯資料來源中的所有資料欄。

回攻員

Boolean - True:如果資料來源資料表正在同步處理關聯資料中的所有資料欄 或 false

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

refreshData()

重新整理物件資料。

如果目前處於 error 狀態,就會擲回例外狀況。使用 DataSource#updateSpec() 更新規格。建議使用此方法,而非 forceRefreshData(),以免資料來源發生意外編輯。

如果未啟用資料來源類型,就會擲回例外狀況。使用 SpreadsheetApp#enable...Execution() 方法為特定資料來源啟用資料執行程序 類型。

回攻員

DataSourceTable:資料物件。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeAllColumns()

移除資料來源表格中的所有資料欄。

回攻員

DataSourceTable:用於鏈結的資料來源資料表。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeAllSortSpecs()

移除資料來源資料表中的所有排序規格。

回攻員

DataSourceTable:用於鏈結的資料來源工作表。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRowLimit(rowLimit)

更新資料來源資料表的資料列限制。如果提供的行數上限為 null,則更新資料來源資料表,以便使用 Google 試算表 UI 中的預設最大行數上限。

參數

名稱類型說明
rowLimitInteger資料表的新資料列限制。如果是 null,請更新要使用的資料表 預設的列數上限。

回攻員

DataSourceTable:資料來源資料表,用於鏈結。

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

syncAllColumns()

將相關聯資料來源中目前和日後的所有資料欄同步到資料來源資料表。

回攻員

DataSourceTable:用於鏈結的資料來源資料表。

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

waitForCompletion(timeoutInSeconds)

等待目前的執行作業完成,並在指定的秒數後逾時。 如果執行作業未完成時,就會擲回例外狀況,但未取消 資料執行方式

參數

名稱類型說明
timeoutInSecondsInteger等待資料執行的時間 (以秒為單位)。上限為 300 個 秒內請求驗證碼。

回攻員

DataExecutionStatus:資料執行狀態。

授權

使用這個方法的腳本需要具備下列一或多個範圍的授權:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets