Class DataSource

数据

访问和修改现有数据源。如需使用新的数据源创建数据源表,请参阅 DataSourceTable

仅将此类用于与数据库关联的数据。

方法

方法返回类型简介
cancelAllLinkedDataSourceObjectRefreshes()void取消与此数据源关联的数据源对象当前正在运行的所有刷新。
createCalculatedColumn(name, formula)DataSourceColumn创建计算列。
createDataSourcePivotTableOnNewSheet()DataSourcePivotTable在新工作表的第一个单元格中,根据此数据源创建数据源数据透视表。
createDataSourceTableOnNewSheet()DataSourceTable在新工作表的第一个单元格中,根据此数据源创建数据源表。
getCalculatedColumnByName(columnName)DataSourceColumn返回数据源中与列名称匹配的计算列。
getCalculatedColumns()DataSourceColumn[]返回数据源中的所有计算列。
getColumns()DataSourceColumn[]返回数据源中的所有列。
getDataSourceSheets()DataSourceSheet[]返回与此数据源关联的数据源工作表。
getSpec()DataSourceSpec获取数据源规范。
refreshAllLinkedDataSourceObjects()void刷新与数据源关联的所有数据源对象。
updateSpec(spec)DataSource更新数据源规范,并使用新规范刷新与此数据源关联的数据源对象。
updateSpec(spec, refreshAllLinkedObjects)DataSource更新数据源规范,并使用新规范刷新关联的 data source sheets
waitForAllDataExecutionsCompletion(timeoutInSeconds)void等待关联的数据源对象的所有当前执行作业完成,并在提供的秒数后超时。

详细文档

cancelAllLinkedDataSourceObjectRefreshes()

取消与此数据源关联的数据源对象当前正在运行的所有刷新。

以下示例展示了如何取消数据源的所有刷新。

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

如果数据源类型未启用,则会抛出异常。使用 SpreadsheetApp#enable...Execution() 方法为特定数据源类型启用数据执行。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

createCalculatedColumn(name, formula)

创建计算列。此方法仅适用于 BigQuery 数据源。

参数

名称类型说明
nameString计算列的名称。
formulaString计算列公式。

返回

DataSourceColumn - 新创建的计算列。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

createDataSourcePivotTableOnNewSheet()

在新工作表的第一个单元格中,根据此数据源创建数据源数据透视表。副作用是,将新工作表设为活动工作表。

返回

DataSourcePivotTable - 新创建的数据源数据透视表。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

createDataSourceTableOnNewSheet()

在新工作表的第一个单元格中,根据此数据源创建数据源表。副作用是,将新表格设为活动表格。

此方法仅适用于 BigQuery 数据源。

返回

DataSourceTable - 新创建的数据源表。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

getCalculatedColumnByName(columnName)

返回数据源中与列名称匹配的计算列。

参数

名称类型说明
columnNameString要获取的计算列的名称。

返回

DataSourceColumn - 与列名称匹配的计算列,如果没有此类计算列,则为 null

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

getCalculatedColumns()

返回数据源中的所有计算列。

DataSourceType.LOOKER 类型的数据源规范会返回一个空数组。

返回

DataSourceColumn[] - 数据源中所有计算列的数组。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

getColumns()

返回数据源中的所有列。

返回

DataSourceColumn[] - 数据源中所有 DataSourceColumn 的数组。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

getDataSourceSheets()

返回与此数据源关联的数据源工作表。

返回

DataSourceSheet[] - 数据源工作表的数组。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

getSpec()

获取数据源规范。

返回

DataSourceSpec - 数据源规范。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

refreshAllLinkedDataSourceObjects()

刷新与数据源关联的所有数据源对象。

如果数据源类型未启用,则会抛出异常。使用 SpreadsheetApp#enable...Execution() 方法为特定数据源类型启用数据执行。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

updateSpec(spec)

更新数据源规范,并使用新规范刷新与此数据源关联的数据源对象。

如果数据源类型未启用,则会抛出异常。使用 SpreadsheetApp#enable...Execution() 方法为特定数据源类型启用数据执行。

如果数据源规范类型与当前数据源类型不同,则会抛出异常。

参数

名称类型说明
specDataSourceSpec要更新的数据源规范。

返回

DataSource - 数据源。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

updateSpec(spec, refreshAllLinkedObjects)

更新数据源规范,并使用新规范刷新关联的 data source sheets

如果数据源类型未启用,则会抛出异常。使用 SpreadsheetApp#enable...Execution() 方法为特定数据源类型启用数据执行。

如果数据源规范类型与当前数据源类型不同,则会抛出异常。

参数

名称类型说明
specDataSourceSpec要更新的数据源规范。
refreshAllLinkedObjectsBoolean如果为 true,还会刷新与此数据源关联的所有数据源对象。

返回

DataSource - 数据源。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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

waitForAllDataExecutionsCompletion(timeoutInSeconds)

等待关联的数据源对象的所有当前执行作业完成,并在提供的秒数后超时。如果超时时执行作业未完成,则会抛出异常,但不会取消数据执行作业。

参数

名称类型说明
timeoutInSecondsInteger等待数据执行的时间(以秒为单位)。最长为 300 秒。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

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