Class DataSourceTable

資料來源資料表

存取及修改現有資料來源表。如要在新工作表中建立新的資料來源資料表,請使用 Spreadsheet.insertSheetWithDataSourceTable(spec)

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

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

SpreadsheetApp.enableBigQueryExecution();
const spreadsheet = SpreadsheetApp.getActive();
const 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.
const dataSheet = spreadsheet.insertSheetWithDataSourceTable(spec);
const 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();
const dataSheet = SpreadsheetApp.getActive().getSheetByName('Data Sheet 1');
const dataSourceTable = dataSheet.getDataSourceTables()[0];
const dataSource = dataSourceTable.getDataSource();
const 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