Class DataSource

  • TheDataSource class is used to access and modify existing data sources connected to a database.

  • You can create calculated columns and new pivot or data source tables on new sheets using this class.

  • The class provides methods to retrieve columns, calculated columns, and associated data source sheets.

  • You can refresh or cancel refreshes for linked data source objects and update the data source specification.

  • You can wait for data executions linked to the data source to complete within a specified timeout.

DataSource

Access and modify existing data source. To create a data source table with new data source, seeDataSourceTable.

Only use this class with data that's connected to a database.

Methods

MethodReturn typeBrief description
cancelAllLinkedDataSourceObjectRefreshes()voidCancels all currently running refreshes of data source objects linked to this data source.
createCalculatedColumn(name, formula)DataSourceColumnCreates a calculated column.
createDataSourcePivotTableOnNewSheet()DataSourcePivotTableCreates a data source pivot table from this data source in the first cell of a new sheet.
createDataSourceTableOnNewSheet()DataSourceTableCreates a data source table from this data source in the first cell of a new sheet.
getCalculatedColumnByName(columnName)DataSourceColumn|nullReturns the calculated column in the data source that matches the column name.
getCalculatedColumns()DataSourceColumn[]Returns all the calculated columns in the data source.
getColumns()DataSourceColumn[]Returns all the columns in the data source.
getDataSourceSheets()DataSourceSheet[]Returns the data source sheets associated with this data source.
getSpec()DataSourceSpecGets the data source specification.
refreshAllLinkedDataSourceObjects()voidRefreshes all data source objects linked to the data source.
updateSpec(spec)DataSourceUpdates the data source specification and refreshes the data source objects linked with thisdata source with the new specification.
updateSpec(spec, refreshAllLinkedObjects)DataSourceUpdates the data source specification and refreshes the linkeddatasource sheets with the new specification.
waitForAllDataExecutionsCompletion(timeoutInSeconds)voidWaits until all the current executions of the linked data source objects complete, timing outafter the provided number of seconds.

Detailed documentation

cancelAllLinkedDataSourceObjectRefreshes()

Cancels all currently running refreshes of data source objects linked to this data source.

This example shows how to cancel all the refreshes of a data source.

SpreadsheetApp.enableBigQueryExecution();constspreadsheet=SpreadsheetApp.getActiveSpreadsheet();constdataSource=spreadsheet.getDataSources()[0];dataSource.cancelAllLinkedDataSourceObjectRefreshes();

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

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

createCalculatedColumn(name, formula)

Creates a calculated column. This method is only available for BigQuery data sources.

Parameters

NameTypeDescription
nameStringThe name of the calculated column.
formulaStringThe calculated column formula.

Return

DataSourceColumn — The newly created calculated column.

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

createDataSourcePivotTableOnNewSheet()

Creates a data source pivot table from this data source in the first cell of a new sheet. As aside effect, makes the new sheet the active sheet.

Return

DataSourcePivotTable — The newly created data source pivot 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

createDataSourceTableOnNewSheet()

Creates a data source table from this data source in the first cell of a new sheet. As a sideeffect, makes the new sheet the active sheet.

This method is only available for BigQuery data sources.

Return

DataSourceTable — The newly created 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

getCalculatedColumnByName(columnName)

Returns the calculated column in the data source that matches the column name.

Parameters

NameTypeDescription
columnNameStringThe name of the calculated column to get.

Return

DataSourceColumn|null — The calculated column that matches the column name, ornull if there is no such calculated column.

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

getCalculatedColumns()

Returns all the calculated columns in the data source.

Data source specs ofDataSourceType.LOOKER type returns an empty array.

Return

DataSourceColumn[] — An array of all the calculated columns in 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

getColumns()

Returns all the columns in the data source.

Return

DataSourceColumn[] — An array of all theDataSourceColumn in 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

getDataSourceSheets()

Returns the data source sheets associated with this data source.

Return

DataSourceSheet[] — An array of data source sheets.

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

getSpec()

Gets the data source specification.

Return

DataSourceSpec — The data source specification.

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

refreshAllLinkedDataSourceObjects()

Refreshes all data source objects linked to the data source.

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

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

updateSpec(spec)

Updates the data source specification and refreshes the data source objects linked with thisdata source with the new specification.

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

Throws an exception if the data source specification type is of a different type than thecurrent data source type.

Parameters

NameTypeDescription
specDataSourceSpecThe data source specification to update with.

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

updateSpec(spec, refreshAllLinkedObjects)

Updates the data source specification and refreshes the linkeddatasource sheets with the new specification.

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

Throws an exception if the data source specification type is of a different type than thecurrent data source type.

Parameters

NameTypeDescription
specDataSourceSpecThe data source specification to update with.
refreshAllLinkedObjectsBooleanIftrue, also refreshes all the data source objects linked with this data source.

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

waitForAllDataExecutionsCompletion(timeoutInSeconds)

Waits until all the current executions of the linked data source objects complete, timing outafter the provided number of seconds. Throws an exception if the executions are not completedwhen timing out, but does not cancel the data executions.

Parameters

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

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.