访问和修改现有数据源表。如需在新工作表中创建新的数据源表,请使用 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)
向数据源表添加列。
参数
名称 | 类型 | 说明 |
---|---|---|
columnNames | String[] | 要添加的列的名称的列表。 |
弃踢回攻
DataSourceTable
- 数据源表,用于进行链接。
授权
使用此方法的脚本需要以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addFilter(columnName, filterCriteria)
添加应用于数据源表的过滤条件。
参数
名称 | 类型 | 说明 |
---|---|---|
columnName | String | 要应用此过滤条件的列的名称。 |
filterCriteria | FilterCriteria | 要应用的过滤条件。 |
弃踢回攻
DataSourceTable
- 数据源表,用于进行链接。
授权
使用此方法的脚本需要以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addSortSpec(columnName, ascending)
针对数据源表中的列添加排序规范。
参数
名称 | 类型 | 说明 |
---|---|---|
columnName | String | 要排序的列的名称。 |
ascending | Boolean | 如果为 true ,则按升序对列排序;如果为 false ,则按降序对列进行排序。 |
弃踢回攻
DataSourceTable
- 用于链接的数据源工作表。
授权
使用此方法的脚本需要以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addSortSpec(columnName, sortOrder)
针对数据源表中的列添加排序规范。
参数
名称 | 类型 | 说明 |
---|---|---|
columnName | String | 要排序的列的名称。 |
sortOrder | SortOrder | 排序顺序。 |
弃踢回攻
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()
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 表格界面中的默认最大行数上限。
参数
名称 | 类型 | 说明 |
---|---|---|
rowLimit | Integer | 数据表的新行数上限。如果为 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)
等待当前执行完成,在提供的秒数后超时。 如果超时执行时未完成,但未取消数据执行,则会抛出异常。
参数
名称 | 类型 | 说明 |
---|---|---|
timeoutInSeconds | Integer | 等待数据执行的时间,以秒为单位。最大值为 300 秒。 |
弃踢回攻
DataExecutionStatus
- 数据执行状态。
授权
使用此方法的脚本需要以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets