存取及修改現有的資料來源資料表。如要在新工作表中建立新的資料來源表格,請按照下列步驟操作:
使用 Spreadsheet.insertSheetWithDataSourceTable(spec)
。
請勿將這個類別與 BigQuery 資料來源搭配使用。
本例說明如何建立新的資料來源資料表。
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 試算表 UI 中的預設上限,則為 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 試算表 UI 中的預設最大行數上限。
參數
名稱 | 類型 | 說明 |
---|---|---|
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