Excel.LinkedEntityDataDomainCollection class
表示对象的 LinkedEntityDataDomain 集合。 集合可以包含链接实体数据域,例如由服务提供商(如必应或 Power BI)定义的股票、地理位置或货币,或由 Office 加载项定义的链接实体数据域。
注解
Excel 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();
});
方法
| add(options) | 向集合添加由 Office 加载项定义的链接实体数据域对象。 添加链接实体数据域后,它可用于创建 |
| get |
获取集合中链接的实体数据域的数量。 |
| get |
通过其 |
| get |
按其在集合中的索引获取链接实体数据域。 |
| get |
通过其 |
| get |
通过其 |
| get |
通过其 |
| load(options) | 将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
| load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
| load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
| load |
提交请求以使用 |
| refresh |
刷新 |
| toJSON() | 覆盖 JavaScript |
活动
| on |
当加载 |
| on |
在将新的链接实体数据域添加到工作簿时发生。 |
| on |
当刷新链接实体数据域的对象的 |
| on |
当链接实体数据域的更改 |
属性详细信息
context
items
方法详细信息
add(options)
向集合添加由 Office 加载项定义的链接实体数据域对象。 添加链接实体数据域后,它可用于创建 LinkedEntityCellValue 对象。
add(options: Excel.LinkedEntityDataDomainCreateOptions): void;
参数
用于创建要添加的链接实体数据域的选项。
返回
void
注解
Excel 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 web 版不支持此方法。
getItem(id)
通过其 id获取链接实体数据域。
getItem(id: string): Excel.LinkedEntityDataDomain;
参数
- id
-
string
要检索的LinkedEntityDataDomain对象的 IDid。
返回
具有给定 id. 如果有多个链接实体数据域具有相同的 id,则将返回由此 Office 加载项定义的域。
注解
Excel 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 web 版不支持此方法。
getItemByName(name)
通过其 name获取链接实体数据域。
getItemByName(name: string): Excel.LinkedEntityDataDomain;
参数
- name
-
string
要检索的LinkedEntityDataDomain对象的 IDname。
返回
具有给定 name. 如果有多个链接实体数据域具有相同的 name,则将返回由此 Office 加载项定义的域。
注解
Excel web 版不支持此方法。
getItemByNameOrNullObject(name)
通过其 name获取链接实体数据域。 如果链接的实体数据域不存在,则此方法将返回其 isNullObject 属性设置为 true的对象。 有关详细信息,请参阅 *OrNullObject 方法和属性。
getItemByNameOrNullObject(name: string): Excel.LinkedEntityDataDomain;
参数
- name
-
string
要检索的LinkedEntityDataDomain对象的 IDname。
返回
具有给定 name. 如果有多个链接实体数据域具有相同的 name,则将返回由此 Office 加载项定义的域。
注解
Excel web 版不支持此方法。
getItemOrNullObject(id)
通过其 id获取链接实体数据域。 如果链接的实体数据域不存在,则此方法将返回其 isNullObject 属性设置为 true的对象。 有关详细信息,请参阅 *OrNullObject 方法和属性。
getItemOrNullObject(id: string): Excel.LinkedEntityDataDomain;
参数
- id
-
string
要检索的LinkedEntityDataDomain对象的 IDid。
返回
具有给定 id. 如果有多个链接实体数据域具有相同的 id,则将返回由此 Office 加载项定义的域。
注解
Excel 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)
提交请求以使用 LinkedEntityCellValue 指定的 LinkedEntityId. 如果找到, 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 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()
覆盖 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 (JSON.stringify反过来调用 toJSON 传递给它的对象的方法。) 虽然原始 Excel.LinkedEntityDataDomainCollection 对象是 API 对象,但该 toJSON 方法返回一个纯 JavaScript 对象, (类型为 Excel.Interfaces.LinkedEntityDataDomainCollectionData) ,其中包含一个“items”数组,其中包含从集合的 items 中加载的任何属性的浅层副本。
toJSON(): Excel.Interfaces.LinkedEntityDataDomainCollectionData;
返回
事件详细信息
onLinkedEntityCellValueLoaded
当加载 LinkedEntityCellValue 请求完成时发生。
readonly onLinkedEntityCellValueLoaded: OfficeExtension.EventHandlers<Excel.LinkedEntityCellValueLoadedEventArgs>;
事件类型
注解
Excel 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 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 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 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}`);
}