Class DataSourceTable

  • The DataSourceTable class is used to access and modify existing data source tables, specifically with BigQuery data sources.

  • You can create a new data source table usingSpreadsheet.insertSheetWithDataSourceTable(spec) and access it viadataSheet.getDataSourceTables()[0].

  • Data source tables allow adding columns, filters, and sort specifications to the data.

  • You can refresh the data in a DataSourceTable usingrefreshData() orforceRefreshData(), and cancel a refresh withcancelDataRefresh().

  • The status of data execution for a DataSourceTable can be retrieved usinggetStatus() and you can wait for completion usingwaitForCompletion().

DataSourceTable

Access and modify existing data source table. To create a new data source table on a new sheet,useSpreadsheet.insertSheetWithDataSourceTable(spec).

Only use this class with BigQuery data sources.

This example shows how to create a new data source table.

SpreadsheetApp.enableBigQueryExecution();constspreadsheet=SpreadsheetApp.getActive();constspec=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.constdataSheet=spreadsheet.insertSheetWithDataSourceTable(spec);constdataSourceTable=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(),);

This example shows how to edit a data source.

SpreadsheetApp.enableBigQueryExecution();constdataSheet=SpreadsheetApp.getActive().getSheetByName('Data Sheet 1');constdataSourceTable=dataSheet.getDataSourceTables()[0];constdataSource=dataSourceTable.getDataSource();constnewSpec=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(),);

Methods

MethodReturn typeBrief description
addColumns(columnNames)DataSourceTableAdds columns to the data source table.
addFilter(columnName, filterCriteria)DataSourceTableAdds a filter applied to the data source table.
addSortSpec(columnName, ascending)DataSourceTableAdds a sort spec on a column in the data source table.
addSortSpec(columnName, sortOrder)DataSourceTableAdds a sort spec on a column in the data source table.
cancelDataRefresh()DataSourceTableCancels the data refresh associated with this object if it's currently running.
forceRefreshData()DataSourceTableRefreshes the data of this object regardless of the current state.
getColumns()DataSourceTableColumn[]Gets all the data source columns added to the data source table.
getDataSource()DataSourceGets the data source the object is linked to.
getFilters()DataSourceTableFilter[]Returns all filters applied to the data source table.
getRange()RangeGets theRange this data source table spans.
getRowLimit()Integer|nullReturns the row limit for the data source table.
getSortSpecs()SortSpec[]Gets all the sort specs in the data source table.
getStatus()DataExecutionStatusGets the data execution status of the object.
isSyncingAllColumns()BooleanReturns whether the data source table is syncing all columns in the associated data source.
refreshData()DataSourceTableRefreshes the data of the object.
removeAllColumns()DataSourceTableRemoves all the columns in the data source table.
removeAllSortSpecs()DataSourceTableRemoves all the sort specs in the data source table.
setRowLimit(rowLimit)DataSourceTableUpdates the row limit for the data source table.
syncAllColumns()DataSourceTableSync all current and future columns in the associated data source to the data source table.
waitForCompletion(timeoutInSeconds)DataExecutionStatusWaits until the current execution completes, timing out after the provided number of seconds.

Detailed documentation

addColumns(columnNames)

Adds columns to the data source table.

Parameters

NameTypeDescription
columnNamesString[]The list of the names of the columns to add.

Return

DataSourceTable — The data source table, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

addFilter(columnName, filterCriteria)

Adds a filter applied to the data source table.

Parameters

NameTypeDescription
columnNameStringThe name of the column to apply this filter to.
filterCriteriaFilterCriteriaThe filter criteria to apply.

Return

DataSourceTable — The data source table, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

addSortSpec(columnName, ascending)

Adds a sort spec on a column in the data source table.

Parameters

NameTypeDescription
columnNameStringThe name of the column to sort.
ascendingBooleanIftrue, sort the column in ascending order; iffalse, sort the column in descending order.

Return

DataSourceTable — The data source sheet, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

addSortSpec(columnName, sortOrder)

Adds a sort spec on a column in the data source table.

Parameters

NameTypeDescription
columnNameStringThe name of the column to sort.
sortOrderSortOrderThe sort order.

Return

DataSourceTable — The data source sheet, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

cancelDataRefresh()

Cancels the data refresh associated with this object if it's currently running.

This example shows how to cancel a formula refresh.

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

Throws an exception if the data source type is not enabled. UseSpreadsheetApp#enable...Execution() methods to enable data execution for specific data sourcetype.

Return

DataSourceTable — The data object.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

forceRefreshData()

Refreshes the data of this object regardless of the current state. SeerefreshData() formore details. If you want to cancel a currently running refresh of this object, seecancelDataRefresh().

Throws an exception if the data source type is not enabled. UseSpreadsheetApp#enable...Execution() methods to enable data execution for specific data sourcetype.

Return

DataSourceTable — The data object.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

getColumns()

Gets all the data source columns added to the data source table.

Return

DataSourceTableColumn[] — A list of data source table columns.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

getDataSource()

Gets the data source the object is linked to.

Return

DataSource — The data source.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

getFilters()

Returns all filters applied to the data source table.

Return

DataSourceTableFilter[] — An array of all filters applied to the data source table.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

getRange()

Gets theRange this data source table spans.

Return

Range — The range.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

getRowLimit()

Returns the row limit for the data source table.

Return

Integer|null — The row limit for the data source table, ornull if no limit is set and the table uses the default max limit as in Google Sheets UI.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

getSortSpecs()

Gets all the sort specs in the data source table.

Return

SortSpec[] — A list of sort specs.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

getStatus()

Gets the data execution status of the object.

Return

DataExecutionStatus — The data execution status.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

isSyncingAllColumns()

Returns whether the data source table is syncing all columns in the associated data source.

Return

BooleanTrue if the data source table is syncing all columns in the associated data source, orfalse otherwise.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

refreshData()

Refreshes the data of the object.

Throws an exception if currently inerror state. UseDataSource#updateSpec() to update the specification. The method ispreferred overforceRefreshData() to prevent unexpected edits on data source.

Throws an exception if the data source type is not enabled. UseSpreadsheetApp#enable...Execution() methods to enable data execution for specific data sourcetype.

Return

DataSourceTable — The data object.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

removeAllColumns()

Removes all the columns in the data source table.

Return

DataSourceTable — The data source table, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

removeAllSortSpecs()

Removes all the sort specs in the data source table.

Return

DataSourceTable — The data source sheet, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

setRowLimit(rowLimit)

Updates the row limit for the data source table. If the provided row limit isnull,then updates the data source table to use the default max row limit as in Google Sheets UI.

Parameters

NameTypeDescription
rowLimitIntegerThe new row limit for the data table. Ifnull, updates the table to use the default row limit.

Return

DataSourceTable — The data source table, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

syncAllColumns()

Sync all current and future columns in the associated data source to the data source table.

Return

DataSourceTable — The data source table, for chaining.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

waitForCompletion(timeoutInSeconds)

Waits until the current execution completes, timing out after the provided number of seconds.Throws an exception if the execution is not completed when timing out, but does not cancel thedata execution.

Parameters

NameTypeDescription
timeoutInSecondsIntegerThe time to wait for data execution, in seconds. The maximum is 300 seconds.

Return

DataExecutionStatus — The data execution status.

Authorization

Scripts that use this method require authorization with one or more of the followingscopes:

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

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-11 UTC.