Excel.LinkedEntityDataDomainCollection class
LinkedEntityDataDomain オブジェクトのコレクションを表します。 コレクションには、Bing や Power BI などのサービス データ プロバイダーによって定義された株式、地理、通貨などのリンクされたエンティティ データ ドメイン、または Office アドインによって定義されたリンクされたエンティティ データ ドメインを含めることができます。
- Extends
注釈
このクラスは 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 アドインによって定義されたリンクされたエンティティ データ ドメイン オブジェクトをコレクションに追加します。 リンクされたエンティティ データ ドメインが追加されると、それを使用して |
| get |
コレクション内のリンクされたエンティティ データ ドメインの数を取得します。 |
| get |
リンクされたエンティティ データ ドメインをその |
| get |
コレクション内のインデックスによって、リンクされたエンティティ データ ドメインを取得します。 |
| get |
リンクされたエンティティ データ ドメインをその |
| get |
リンクされたエンティティ データ ドメインをその |
| get |
リンクされたエンティティ データ ドメインをその |
| load(options) | オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、 |
| load(property |
オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、 |
| load(property |
オブジェクトの指定されたプロパティを読み込むコマンドを待ち行列に入れます。 プロパティを読み取る前に、 |
| load |
指定した |
| refresh |
このコレクション内のリンクされているすべてのエンティティ データ ドメインのすべての |
| toJSON() | API オブジェクトが |
イベント
| on |
|
| on |
新しいリンクされたエンティティ データ ドメインがブックに追加されたときに発生します。 |
| on |
リンクされたエンティティ データ ドメインの |
| on |
リンクされたエンティティ データ ドメインの |
プロパティの詳細
context
オブジェクトに関連付けられている要求コンテキスト。 これにより、アドインのプロセスが Office ホスト アプリケーションのプロセスに接続されます。
context: RequestContext;
プロパティ値
items
このコレクション内に読み込まれた子アイテムを取得します。
readonly items: Excel.LinkedEntityDataDomain[];
プロパティ値
メソッドの詳細
add(options)
Office アドインによって定義されたリンクされたエンティティ データ ドメイン オブジェクトをコレクションに追加します。 リンクされたエンティティ データ ドメインが追加されると、それを使用して LinkedEntityCellValue オブジェクトを作成できます。
add(options: Excel.LinkedEntityDataDomainCreateOptions): void;
パラメーター
追加するリンクされたエンティティ データ ドメインを作成するために使用されるオプション。
返品
void
注釈
この方法は、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>;
返品
OfficeExtension.ClientResult<number>
注釈
この方法は、Excel on the web ではサポートされていません。
getItem(id)
リンクされたエンティティ データ ドメインをその idで取得します。
getItem(id: string): Excel.LinkedEntityDataDomain;
パラメーター
- id
-
string
取得する LinkedEntityDataDomain オブジェクトのid。
返品
指定された idにリンクされたエンティティ データ ドメイン。 同じ idを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。
注釈
この方法は、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
コレクション内のリンクされたエンティティ データ ドメインのインデックス。
返品
指定されたインデックスにリンクされたエンティティ データ ドメイン。
注釈
この方法は、Excel on the web ではサポートされていません。
getItemByName(name)
リンクされたエンティティ データ ドメインをその nameで取得します。
getItemByName(name: string): Excel.LinkedEntityDataDomain;
パラメーター
- name
-
string
取得する LinkedEntityDataDomain オブジェクトのname。
返品
指定された nameにリンクされたエンティティ データ ドメイン。 同じ nameを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。
注釈
この方法は、Excel on the web ではサポートされていません。
getItemByNameOrNullObject(name)
リンクされたエンティティ データ ドメインをその nameで取得します。 リンクされたエンティティ データ ドメインが存在しない場合、このメソッドは isNullObject プロパティが true に設定されたオブジェクトを返します。 詳細については、「 *OrNullObject のメソッドとプロパティ」を参照してください。
getItemByNameOrNullObject(name: string): Excel.LinkedEntityDataDomain;
パラメーター
- name
-
string
取得する LinkedEntityDataDomain オブジェクトのname。
返品
指定された nameにリンクされたエンティティ データ ドメイン。 同じ nameを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。
注釈
この方法は、Excel on the web ではサポートされていません。
getItemOrNullObject(id)
リンクされたエンティティ データ ドメインをその idで取得します。 リンクされたエンティティ データ ドメインが存在しない場合、このメソッドは isNullObject プロパティが true に設定されたオブジェクトを返します。 詳細については、「 *OrNullObject のメソッドとプロパティ」を参照してください。
getItemOrNullObject(id: string): Excel.LinkedEntityDataDomain;
パラメーター
- id
-
string
取得する LinkedEntityDataDomain オブジェクトのid。
返品
指定された idにリンクされたエンティティ データ ドメイン。 同じ idを持つ複数のリンクされたエンティティ データ ドメインがある場合は、この Office アドインで定義されたものが返されます。
注釈
この方法は、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)
指定したLinkedEntityIdで LinkedEntityCellValue オブジェクトを読み込む要求を送信します。 見つかった場合、 LinkedEntityCellValue オブジェクトは LinkedEntityCellValueLoaded イベントによって返されます。
loadLinkedEntityCellValue(id: LinkedEntityId): void;
パラメーター
特定の LinkedEntityId
返品
void
注釈
例
// 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
注釈
この方法は、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>;
イベントの種類
注釈
このイベントは 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>;
イベントの種類
注釈
このイベントは 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>;
イベントの種類
注釈
このイベントは 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>;
イベントの種類
注釈
このイベントは 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}`);
}