Class DataSourceTable

DataSourceTable

访问和修改现有数据源表。如需在新工作表中创建新的数据源表,请使用 Spreadsheet.insertSheetWithDataSourceTable(spec)

该类仅适用于连接到数据库的数据。

以下示例展示了如何创建新的数据源表。

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为数据源表中的列添加排序规范。
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

forceRefreshData()

刷新此对象的数据,而不考虑当前状态。如需了解详情,请参阅 refreshData()

如果数据源类型未启用,则会抛出异常。使用 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 表格界面中的默认上限,则为 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 表格界面中的默认行数上限。

参数

名称类型说明
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