Class DataSourceTable

データソーステーブル

既存のデータソース テーブルにアクセスして変更します。新しいシートに新しいデータソース テーブルを作成するには、Spreadsheet.insertSheetWithDataSourceTable(spec) を使用します。

このクラスは、BigQuery データソースでのみ使用してください。

この例では、新しいデータソース テーブルを作成する方法を示します。

SpreadsheetApp.enableBigQueryExecution();
const spreadsheet = SpreadsheetApp.getActive();
const 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.
const dataSheet = spreadsheet.insertSheetWithDataSourceTable(spec);
const 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();
const dataSheet = SpreadsheetApp.getActive().getSheetByName('Data Sheet 1');
const dataSourceTable = dataSheet.getDataSourceTables()[0];
const dataSource = dataSourceTable.getDataSource();
const 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データソース テーブルの列に並べ替え仕様を追加します。
cancelDataRefresh()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 - チェーン接続用のデータソース テーブル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

addFilter(columnName, filterCriteria)

データソース テーブルに適用されるフィルタを追加します。

パラメータ

名前説明
columnNameStringこのフィルタを適用する列の名前。
filterCriteriaFilterCriteria適用するフィルタ条件。

戻る

DataSourceTable - チェーン接続用のデータソース テーブル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

addSortSpec(columnName, ascending)

データソース テーブルの列に並べ替え仕様を追加します。

パラメータ

名前説明
columnNameString並べ替える列の名前。
ascendingBooleantrue の場合は列を昇順で並べ替え、false の場合は列を降順で並べ替えます。

戻る

DataSourceTable - チェーン接続用のデータソースシート。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

addSortSpec(columnName, sortOrder)

データソース テーブルの列に並べ替え仕様を追加します。

パラメータ

名前説明
columnNameString並べ替える列の名前。
sortOrderSortOrder並べ替え順序。

戻る

DataSourceTable - チェーン接続用のデータソースシート。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • 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 - データ オブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

forceRefreshData()

現在の状態に関係なく、このオブジェクトのデータを更新します。詳細については、refreshData() をご覧ください。このオブジェクトの現在実行中の更新をキャンセルする場合は、cancelDataRefresh() をご覧ください。

データソースのタイプが有効になっていない場合は、例外がスローされます。SpreadsheetApp#enable...Execution() メソッドを使用して、特定のデータソース タイプのデータ実行を有効にします。

戻る

DataSourceTable - データ オブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

getColumns()

データソース テーブルに追加されたすべてのデータソース列を取得します。

戻る

DataSourceTableColumn[] - データソースのテーブル列のリスト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

getDataSource()

オブジェクトがリンクされているデータソースを取得します。

戻る

DataSource - データソース。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

getFilters()

データソース テーブルに適用されているすべてのフィルタを返します。

戻る

DataSourceTableFilter[] - データソース テーブルに適用されるすべてのフィルタの配列。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

getRange()

このデータソース テーブルがまたがる Range を取得します。

戻る

Range - 範囲。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

getRowLimit()

データソース テーブルの行数の上限を返します。

戻る

Integer - データソース テーブルの行数の上限。上限が設定されておらず、テーブルが Google スプレッドシートの UI のデフォルトの上限を使用している場合は null

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

getSortSpecs()

データソース テーブル内のすべての並べ替え仕様を取得します。

戻る

SortSpec[] - 並べ替え仕様のリスト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

getStatus()

オブジェクトのデータ実行ステータスを取得します。

戻る

DataExecutionStatus - データ実行ステータス。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

isSyncingAllColumns()

データソース テーブルが、関連するデータソースのすべての列を同期しているかどうかを返します。

戻る

Boolean - データソース テーブルが関連するデータソースのすべての列を同期している場合は True、そうでない場合は false

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

refreshData()

オブジェクトのデータを更新します。

現在 error 状態の場合は例外をスローします。DataSource#updateSpec() を使用して仕様を更新します。データソースの予期しない編集を防ぐため、このメソッドは forceRefreshData() よりも優先されます。

データソースのタイプが有効になっていない場合は、例外がスローされます。SpreadsheetApp#enable...Execution() メソッドを使用して、特定のデータソース タイプのデータ実行を有効にします。

戻る

DataSourceTable - データ オブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

removeAllColumns()

データソース テーブル内のすべての列を削除します。

戻る

DataSourceTable - チェーン接続用のデータソース テーブル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

removeAllSortSpecs()

データソース テーブル内の並べ替え仕様をすべて削除します。

戻る

DataSourceTable - チェーン接続用のデータソースシート。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

setRowLimit(rowLimit)

データソース テーブルの行数の上限を更新します。指定された行数の上限が null の場合、Google スプレッドシートの UI と同様にデフォルトの行数の上限を使用するようにデータソース テーブルを更新します。

パラメータ

名前説明
rowLimitIntegerデータ表の新しい行数の上限。null の場合、デフォルトの行上限を使用するようにテーブルを更新します。

戻る

DataSourceTable - チェーン接続用のデータソース テーブル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

syncAllColumns()

関連するデータソースの現在および今後のすべての列をデータソース テーブルに同期します。

戻る

DataSourceTable - チェーン接続用のデータソース テーブル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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

waitForCompletion(timeoutInSeconds)

指定された秒数経過後にタイムアウトし、現在の実行が完了するまで待機します。タイムアウト時に実行が完了しなかった場合は例外をスローしますが、データ実行はキャンセルしません。

パラメータ

名前説明
timeoutInSecondsIntegerデータの実行を待機する時間(秒)。最大値は 300 秒です。

戻る

DataExecutionStatus - データ実行ステータス。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

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