Excel.LinkedEntityDataDomainCollection class

LinkedEntityDataDomain オブジェクトのコレクションを表します。 コレクションには、Bing や Power BI などのサービス データ プロバイダーによって定義された株式、地理、通貨などのリンクされたエンティティ データ ドメイン、または Office アドインによって定義されたリンクされたエンティティ データ ドメインを含めることができます。

Extends

注釈

API セット: ExcelApi 1.19

このクラスは Excel on the web ではサポートされていません。

使用元

// Registers linked entity data domains when the add-in loads.
await Excel.run(async (context) => {
    const productsDomainOptions: Excel.LinkedEntityDataDomainCreateOptions = {
        dataProvider: "Contoso",
        id: "products",
        name: "Products",
        // ID of the custom function called by Excel to resolve or refresh linked entity cell values.
        loadFunctionId: "CONTOSOLOADSERVICE",
        // periodicRefreshInterval is only required when supportedRefreshModes contains "Periodic".
        periodicRefreshInterval: 300,
        // Manual refresh mode is always supported, even if unspecified.
        supportedRefreshModes: [
            Excel.LinkedEntityDataDomainRefreshMode.periodic,
            Excel.LinkedEntityDataDomainRefreshMode.onLoad
        ]
    };

    // Add the data domain to the collection to register it.
    const domains: Excel.LinkedEntityDataDomainCollection = context.workbook.linkedEntityDataDomains;
    domains.add(productsDomainOptions);
    await context.sync();
});

プロパティ

context

オブジェクトに関連付けられている要求コンテキスト。 これにより、アドインのプロセスが Office ホスト アプリケーションのプロセスに接続されます。

items

このコレクション内に読み込まれた子アイテムを取得します。

メソッド

add(options)

Office アドインによって定義されたリンクされたエンティティ データ ドメイン オブジェクトをコレクションに追加します。 リンクされたエンティティ データ ドメインが追加されると、それを使用して LinkedEntityCellValue オブジェクトを作成できます。

getCount()

コレクション内のリンクされたエンティティ データ ドメインの数を取得します。

getItem(id)

リンクされたエンティティ データ ドメインをその idで取得します。

getItemAt(index)

コレクション内のインデックスによって、リンクされたエンティティ データ ドメインを取得します。

getItemByName(name)

リンクされたエンティティ データ ドメインをその nameで取得します。

getItemByNameOrNullObject(name)

リンクされたエンティティ データ ドメインをその nameで取得します。 リンクされたエンティティ データ ドメインが存在しない場合、このメソッドは isNullObject プロパティが true に設定されたオブジェクトを返します。 詳細については、「 *OrNullObject のメソッドとプロパティ」を参照してください。

getItemOrNullObject(id)

リンクされたエンティティ データ ドメインをその idで取得します。 リンクされたエンティティ データ ドメインが存在しない場合、このメソッドは isNullObject プロパティが true に設定されたオブジェクトを返します。 詳細については、「 *OrNullObject のメソッドとプロパティ」を参照してください。

load(options)

オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、context.sync() を呼び出す必要があります。

load(propertyNames)

オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、context.sync() を呼び出す必要があります。

load(propertyNamesAndPaths)

オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、context.sync() を呼び出す必要があります。

loadLinkedEntityCellValue(id)

指定したLinkedEntityIdLinkedEntityCellValue オブジェクトを読み込む要求を送信します。 見つかった場合、 LinkedEntityCellValue オブジェクトは LinkedEntityCellValueLoaded イベントによって返されます。

refreshAll()

このコレクション内のリンクされているすべてのエンティティ データ ドメインのすべての LinkedEntityCellValue オブジェクトを更新します。 データ プロバイダーがビジー状態であるか、一時的にアクセスできない場合、更新要求は失敗する可能性があります。

toJSON()

API オブジェクトが JSON.stringify() に渡されるときに、より有用な出力を提供するために、JavaScript toJSON() メソッドをオーバーライドします。 (次に、JSON.stringify渡されたオブジェクトの toJSON メソッドを呼び出します)。元の Excel.LinkedEntityDataDomainCollection オブジェクトが API オブジェクトであるのに対し、 toJSON メソッドは、コレクションの項目から読み込まれたプロパティの浅いコピーを含む "items" 配列を含むプレーンな JavaScript オブジェクト ( Excel.Interfaces.LinkedEntityDataDomainCollectionData として型指定された) を返します。

イベント

onLinkedEntityCellValueLoaded

LinkedEntityCellValue読み込み要求が完了したときに発生します。

onLinkedEntityDataDomainAdded

新しいリンクされたエンティティ データ ドメインがブックに追加されたときに発生します。

onRefreshCompleted

リンクされたエンティティ データ ドメインの LinkedEntityCellValue オブジェクトを更新する要求が完了したときに発生します。

onRefreshModeChanged

リンクされたエンティティ データ ドメインの refreshMode が変更されたときに発生します。

プロパティの詳細

context

オブジェクトに関連付けられている要求コンテキスト。 これにより、アドインのプロセスが Office ホスト アプリケーションのプロセスに接続されます。

context: RequestContext;

プロパティ値

items

このコレクション内に読み込まれた子アイテムを取得します。

readonly items: Excel.LinkedEntityDataDomain[];

プロパティ値

メソッドの詳細

add(options)

Office アドインによって定義されたリンクされたエンティティ データ ドメイン オブジェクトをコレクションに追加します。 リンクされたエンティティ データ ドメインが追加されると、それを使用して LinkedEntityCellValue オブジェクトを作成できます。

add(options: Excel.LinkedEntityDataDomainCreateOptions): void;

パラメーター

options
Excel.LinkedEntityDataDomainCreateOptions

追加するリンクされたエンティティ データ ドメインを作成するために使用されるオプション。

返品

void

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

// Registers linked entity data domains when the add-in loads.
await Excel.run(async (context) => {
    const productsDomainOptions: Excel.LinkedEntityDataDomainCreateOptions = {
        dataProvider: "Contoso",
        id: "products",
        name: "Products",
        // ID of the custom function called by Excel to resolve or refresh linked entity cell values.
        loadFunctionId: "CONTOSOLOADSERVICE",
        // periodicRefreshInterval is only required when supportedRefreshModes contains "Periodic".
        periodicRefreshInterval: 300,
        // Manual refresh mode is always supported, even if unspecified.
        supportedRefreshModes: [
            Excel.LinkedEntityDataDomainRefreshMode.periodic,
            Excel.LinkedEntityDataDomainRefreshMode.onLoad
        ]
    };

    // Add the data domain to the collection to register it.
    context.workbook.linkedEntityDataDomains.add(productsDomainOptions);
    await context.sync();
});

getCount()

コレクション内のリンクされたエンティティ データ ドメインの数を取得します。

getCount(): OfficeExtension.ClientResult<number>;

返品

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

getItem(id)

リンクされたエンティティ データ ドメインをその idで取得します。

getItem(id: string): Excel.LinkedEntityDataDomain;

パラメーター

id

string

取得する LinkedEntityDataDomain オブジェクトのid

返品

指定された idにリンクされたエンティティ データ ドメイン。 同じ idを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

// Refreshes all linked entity cell values for a specific data domain.
await Excel.run(async (context) => {
    const dataDomains: Excel.LinkedEntityDataDomainCollection = context.workbook.linkedEntityDataDomains;

    // Get a specific data domain by ID and refresh it.
    const productsDomain: Excel.LinkedEntityDataDomain = dataDomains.getItem("products");
    productsDomain.refresh();
    await context.sync();
});

getItemAt(index)

コレクション内のインデックスによって、リンクされたエンティティ データ ドメインを取得します。

getItemAt(index: number): Excel.LinkedEntityDataDomain;

パラメーター

index

number

コレクション内のリンクされたエンティティ データ ドメインのインデックス。

返品

指定されたインデックスにリンクされたエンティティ データ ドメイン。

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

getItemByName(name)

リンクされたエンティティ データ ドメインをその nameで取得します。

getItemByName(name: string): Excel.LinkedEntityDataDomain;

パラメーター

name

string

取得する LinkedEntityDataDomain オブジェクトのname

返品

指定された nameにリンクされたエンティティ データ ドメイン。 同じ nameを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

getItemByNameOrNullObject(name)

リンクされたエンティティ データ ドメインをその nameで取得します。 リンクされたエンティティ データ ドメインが存在しない場合、このメソッドは isNullObject プロパティが true に設定されたオブジェクトを返します。 詳細については、「 *OrNullObject のメソッドとプロパティ」を参照してください。

getItemByNameOrNullObject(name: string): Excel.LinkedEntityDataDomain;

パラメーター

name

string

取得する LinkedEntityDataDomain オブジェクトのname

返品

指定された nameにリンクされたエンティティ データ ドメイン。 同じ nameを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

getItemOrNullObject(id)

リンクされたエンティティ データ ドメインをその idで取得します。 リンクされたエンティティ データ ドメインが存在しない場合、このメソッドは isNullObject プロパティが true に設定されたオブジェクトを返します。 詳細については、「 *OrNullObject のメソッドとプロパティ」を参照してください。

getItemOrNullObject(id: string): Excel.LinkedEntityDataDomain;

パラメーター

id

string

取得する LinkedEntityDataDomain オブジェクトのid

返品

指定された idにリンクされたエンティティ データ ドメイン。 同じ idを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

load(options)

オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、context.sync() を呼び出す必要があります。

load(options?: Excel.Interfaces.LinkedEntityDataDomainCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions): Excel.LinkedEntityDataDomainCollection;

パラメーター

options

Excel.Interfaces.LinkedEntityDataDomainCollectionLoadOptions & Excel.Interfaces.CollectionLoadOptions

読み込むオブジェクトのプロパティのオプションを指定します。

返品

load(propertyNames)

オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、context.sync() を呼び出す必要があります。

load(propertyNames?: string | string[]): Excel.LinkedEntityDataDomainCollection;

パラメーター

propertyNames

string | string[]

読み込むプロパティを指定するコンマ区切りの文字列または文字列の配列。

返品

load(propertyNamesAndPaths)

オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、context.sync() を呼び出す必要があります。

load(propertyNamesAndPaths?: OfficeExtension.LoadOption): Excel.LinkedEntityDataDomainCollection;

パラメーター

propertyNamesAndPaths
OfficeExtension.LoadOption

propertyNamesAndPaths.select は読み込むプロパティを指定するコンマ区切りの文字列であり、 propertyNamesAndPaths.expand は読み込むナビゲーションのプロパティを指定するコンマ区切りの文字列です。

返品

loadLinkedEntityCellValue(id)

指定したLinkedEntityIdLinkedEntityCellValue オブジェクトを読み込む要求を送信します。 見つかった場合、 LinkedEntityCellValue オブジェクトは LinkedEntityCellValueLoaded イベントによって返されます。

loadLinkedEntityCellValue(id: LinkedEntityId): void;

パラメーター

id
Excel.LinkedEntityId

特定の LinkedEntityId

返品

void

注釈

API セット: ExcelApi 1.21

// Loads the linked entity cell value for the specified domain and entity IDs.
async function loadLinkedEntity(domainId: string, entityId: string ) {
    await Excel.run(async (context) => {
        // Specify the linked entity ID to load.
        const linkedEntityId: Excel.LinkedEntityId = {
            entityId: entityId,
            domainId: domainId,
            serviceId: 268436224, // Service ID used by Excel to identify linked entity cell values associated with an add-in.
            culture: "en-US",
        };

        // Load the linked entity cell value.
        context.workbook.linkedEntityDataDomains.loadLinkedEntityCellValue(linkedEntityId);
        await context.sync();

        // The onLinkedEntityCellValueLoaded event occurs once the linked entity cell value is loaded.
    });
}

refreshAll()

このコレクション内のリンクされているすべてのエンティティ データ ドメインのすべての LinkedEntityCellValue オブジェクトを更新します。 データ プロバイダーがビジー状態であるか、一時的にアクセスできない場合、更新要求は失敗する可能性があります。

refreshAll(): void;

返品

void

注釈

API セット: ExcelApi 1.19

この方法は、Excel on the web ではサポートされていません。

// Refreshes all linked entity cell values across all data domains.
await Excel.run(async (context) => {
    const dataDomains: Excel.LinkedEntityDataDomainCollection = context.workbook.linkedEntityDataDomains;

    // Refresh all linked entity cell values in all data domains.
    dataDomains.refreshAll();
    await context.sync();
});

toJSON()

API オブジェクトが JSON.stringify() に渡されるときに、より有用な出力を提供するために、JavaScript toJSON() メソッドをオーバーライドします。 (次に、JSON.stringify渡されたオブジェクトの toJSON メソッドを呼び出します)。元の Excel.LinkedEntityDataDomainCollection オブジェクトが API オブジェクトであるのに対し、 toJSON メソッドは、コレクションの項目から読み込まれたプロパティの浅いコピーを含む "items" 配列を含むプレーンな JavaScript オブジェクト ( Excel.Interfaces.LinkedEntityDataDomainCollectionData として型指定された) を返します。

toJSON(): Excel.Interfaces.LinkedEntityDataDomainCollectionData;

返品

イベントの詳細

onLinkedEntityCellValueLoaded

LinkedEntityCellValue読み込み要求が完了したときに発生します。

readonly onLinkedEntityCellValueLoaded: OfficeExtension.EventHandlers<Excel.LinkedEntityCellValueLoadedEventArgs>;

イベントの種類

注釈

API セット: ExcelApi 1.21

このイベントは Excel on the web ではサポートされていません。

// Registers an event handler for the onLinkedEntityCellValueLoaded event.
async function registerEvent() {
    await Excel.run(async (context) => {
        const linkedEntityDataDomains: Excel.LinkedEntityDataDomainCollection = context.workbook.linkedEntityDataDomains;
        linkedEntityDataDomains.onLinkedEntityCellValueLoaded.add(handleLoadedLinkedEntity);

        await context.sync();
        console.log("Event handler registered successfully. You''ll be notified when linked entities are loaded.");
    });
}

// Handles the onLinkedEntityCellValueLoaded event that occurs when a linked entity cell value is loaded.
async function handleLoadedLinkedEntity(event: Excel.LinkedEntityCellValueLoadedEventArgs) {
    await Excel.run(async (context) => {
        console.log(`The ${event.type} event occurred from a ${event.source} source.`);
        console.log(`The linked entity cell value with ID ${event.id} is loaded.`);
        const loadedLinkedEntityCellValue: Excel.LinkedEntityCellValue = event.linkedEntityCellValue;
        console.log(`Loaded linked entity cell value: ${loadedLinkedEntityCellValue}`);

        // Queue operations on the loaded entity value here.

        await context.sync();
    });
}

onLinkedEntityDataDomainAdded

新しいリンクされたエンティティ データ ドメインがブックに追加されたときに発生します。

readonly onLinkedEntityDataDomainAdded: OfficeExtension.EventHandlers<Excel.LinkedEntityDataDomainAddedEventArgs>;

イベントの種類

注釈

API セット: ExcelApi 1.19

このイベントは Excel on the web ではサポートされていません。

// Registers an event handler for the onLinkedEntityDataDomainAdded event.
await Excel.run(async (context) => {
    const dataDomains: Excel.LinkedEntityDataDomainCollection = context.workbook.linkedEntityDataDomains;
    dataDomains.onLinkedEntityDataDomainAdded.add(onDataDomainAdded);

    await context.sync();
});

async function onDataDomainAdded(eventArgs: Excel.LinkedEntityDataDomainAddedEventArgs): Promise<void> {
    console.log(`Linked entity data domain added: ${eventArgs.id}`);
    console.log(`Event type: ${eventArgs.type}`);
    console.log(`Event source: ${eventArgs.source}`);
    console.log(`Service ID: ${eventArgs.serviceId}`);
}

onRefreshCompleted

リンクされたエンティティ データ ドメインの LinkedEntityCellValue オブジェクトを更新する要求が完了したときに発生します。

readonly onRefreshCompleted: OfficeExtension.EventHandlers<Excel.LinkedEntityDataDomainRefreshCompletedEventArgs>;

イベントの種類

注釈

API セット: ExcelApi 1.19

このイベントは Excel on the web ではサポートされていません。

// Registers an event handler for the onRefreshCompleted event.
await Excel.run(async (context) => {
    const dataDomains: Excel.LinkedEntityDataDomainCollection = context.workbook.linkedEntityDataDomains;
    dataDomains.onRefreshCompleted.add(onLinkedEntityDomainRefreshed);

    await context.sync();
});

async function onLinkedEntityDomainRefreshed(eventArgs: Excel.LinkedEntityDataDomainRefreshCompletedEventArgs): Promise<void> {
    console.log(`Linked entity domain refreshed: ${eventArgs.id}`);
    console.log(`Event type: ${eventArgs.type}`);
    console.log(`Event source: ${eventArgs.source}`);
    console.log(`Service ID: ${eventArgs.serviceId}`);
    console.log(`Refresh status: ${eventArgs.refreshed}`);
    console.log(`Refresh errors: ${eventArgs.errors}`);
}

onRefreshModeChanged

リンクされたエンティティ データ ドメインの refreshMode が変更されたときに発生します。

readonly onRefreshModeChanged: OfficeExtension.EventHandlers<Excel.LinkedEntityDataDomainRefreshModeChangedEventArgs>;

イベントの種類

注釈

API セット: ExcelApi 1.19

このイベントは Excel on the web ではサポートされていません。

// Registers an event handler for the onRefreshModeChanged event.
await Excel.run(async (context) => {
    const dataDomains: Excel.LinkedEntityDataDomainCollection = context.workbook.linkedEntityDataDomains;
    dataDomains.onRefreshModeChanged.add(onRefreshModeChanged);

    await context.sync();
});

async function onRefreshModeChanged(eventArgs: Excel.LinkedEntityDataDomainRefreshModeChangedEventArgs): Promise<void> {
    console.log(`Linked entity domain refresh mode changed: ${eventArgs.id}`);
    console.log(`Event type: ${eventArgs.type}`);
    console.log(`Event source: ${eventArgs.source}`);
    console.log(`Service ID: ${eventArgs.serviceId}`);
    console.log(`New refresh mode: ${eventArgs.refreshMode}`);
}