Excel.NamedItem class

表示单元格区域或值的定义名称。 名称可以是基元命名对象, (如下类型所示) 、范围对象或对范围的引用。 此对象可用于获取与名称相关的 range 对象。

扩展

注解

API 集:ExcelApi 1.1

使用方

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/34-named-item/create-and-remove-named-item.yaml

await Excel.run(async (context) => {
    // Log all the named items in the active worksheet.
    const namedItems = context.workbook.worksheets.getActiveWorksheet().names.load();
    await context.sync();

    console.log("This worksheet contains " + namedItems.items.length + " named items.");

    for (let i = 0; i < namedItems.items.length; i++) {
        const namedItem : Excel.NamedItem = namedItems.items[i];
        console.log(JSON.stringify(namedItem)) + "\n";
    }

    await context.sync();
});

属性

arrayValues

返回包含已命名项目的值和类型的对象。

comment

指定与此名称关联的注释。

context

与对象关联的请求上下文。 这将加载项的进程连接到 Office 主机应用程序的进程。

formula

命名项的公式。 公式始终以等号 (“=”) 开头。

name

对象的名称。

scope

指定名称的范围是工作簿还是特定工作表。 可能的值为:工作表、工作簿。

type

指定名称公式返回的值的类型。 有关详细信息,请参阅 Excel.NamedItemType

value

表示 name 公式计算出的值。 对于命名的范围,它将返回范围地址。 此 API 返回 #VALUE! 如果引用用户定义的函数,则会在 Excel UI 中显示错误。

valueAsJson

此命名项中值的 JSON 表示形式。 与 不同, NamedItem.value支持 NamedItem.valueAsJson 可以在单元格中的所有数据类型。 示例包括格式化数字值和 Web 图像,以及标准布尔值、数字和字符串值。 从此 API 返回的数据始终与 en-US 区域设置一致。 要检索用户显示区域设置中的数据,请使用 NamedItem.valueAsJsonLocal

valueAsJsonLocal

此命名项中值的 JSON 表示形式。 与 不同, NamedItem.value支持 NamedItem.valueAsJsonLocal 可以在单元格中的所有数据类型。 示例包括格式化数字值和 Web 图像,以及标准布尔值、数字和字符串值。 从此 API 返回的数据始终与用户的显示区域设置一致。 要检索独立于区域设置的数据,请使用 NamedItem.valueAsJson

visible

指定对象是否可见。

worksheet

返回已命名项限定到的工作表。 如果项目的范围限定为工作簿,则引发错误。

worksheetOrNullObject

返回命名项目所限定的工作表。 如果项目的范围限定为工作簿,则此方法返回其 isNullObject 属性设置为 true的对象。 有关详细信息,请参阅 *OrNullObject 方法和属性

方法

delete()

删除给定的名称。

getRange()

返回与名称相关联的 Range 对象。 如果已命名项的类型不是 Range,将引发错误。

getRangeOrNullObject()

返回与名称相关的 range 对象。 如果命名项的类型不是范围,则此方法将返回其 isNullObject 属性设置为 true的对象。 有关详细信息,请参阅 *OrNullObject 方法和属性

load(options)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNames)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNamesAndPaths)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

set(properties, options)

同时设置对象的多个属性。 可以传递具有相应属性的纯文本对象,也可以传递另一个相同类型的 API 对象。

set(properties)

基于现有加载的对象,同时在对象上设置多个属性。

toJSON()

覆盖 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 (JSON.stringify反过来调用 toJSON 传递给它的对象的方法。) 虽然原始 Excel.NamedItem 对象是 API 对象, toJSON 但该方法返回一个纯 JavaScript 对象, (类型化为 Excel.Interfaces.NamedItemData) ,其中包含从原始对象加载的任何子属性的浅层副本。

属性详细信息

arrayValues

返回包含已命名项目的值和类型的对象。

readonly arrayValues: Excel.NamedItemArrayValues;

属性值

注解

API 集:ExcelApi 1.7

comment

指定与此名称关联的注释。

comment: string;

属性值

string

注解

API 集:ExcelApi 1.4

context

与对象关联的请求上下文。 这将加载项的进程连接到 Office 主机应用程序的进程。

context: RequestContext;

属性值

formula

命名项的公式。 公式始终以等号 (“=”) 开头。

formula: any;

属性值

any

注解

API 集:ExcelApi 1.7

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/34-named-item/update-named-item.yaml

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Sample");

    // Get the named item
    const myNamedItem = sheet.names.getItemOrNullObject("MyRange");
    myNamedItem.load("name, formula");
    await context.sync();

    if (myNamedItem.isNullObject) {
        console.log(`There is no named item. Create it with "Add named item for a range" first.`);
    } else {                    
        // Update named item to point to the second range
        myNamedItem.formula = "=Sample!$B$10:$D$14";
        sheet.getRange("B10:D14").select();
        await context.sync();

        console.log(`Just updated the named item "${myNamedItem.name}" -- it's now located here: ${myNamedItem.formula}`);
    }
});

name

对象的名称。

readonly name: string;

属性值

string

注解

API 集:ExcelApi 1.1

scope

指定名称的范围是工作簿还是特定工作表。 可能的值为:工作表、工作簿。

readonly scope: Excel.NamedItemScope | "Worksheet" | "Workbook";

属性值

Excel.NamedItemScope | "Worksheet" | "Workbook"

注解

API 集:ExcelApi 1.4

type

指定名称公式返回的值的类型。 有关详细信息,请参阅 Excel.NamedItemType

readonly type: Excel.NamedItemType | "String" | "Integer" | "Double" | "Boolean" | "Range" | "Error" | "Array";

属性值

Excel.NamedItemType | "String" | "Integer" | "Double" | "Boolean" | "Range" | "Error" | "Array"

注解

API 集: ExcelApi 1.1 for string,integer,double,Boolean,Range,Error;1.7 数组

value

表示 name 公式计算出的值。 对于命名的范围,它将返回范围地址。 此 API 返回 #VALUE! 如果引用用户定义的函数,则会在 Excel UI 中显示错误。

readonly value: any;

属性值

any

注解

API 集:ExcelApi 1.1

valueAsJson

此命名项中值的 JSON 表示形式。 与 不同, NamedItem.value支持 NamedItem.valueAsJson 可以在单元格中的所有数据类型。 示例包括格式化数字值和 Web 图像,以及标准布尔值、数字和字符串值。 从此 API 返回的数据始终与 en-US 区域设置一致。 要检索用户显示区域设置中的数据,请使用 NamedItem.valueAsJsonLocal

readonly valueAsJson: CellValue | string;

属性值

Excel.CellValue | string

注解

API 集:ExcelApi 1.16

valueAsJsonLocal

此命名项中值的 JSON 表示形式。 与 不同, NamedItem.value支持 NamedItem.valueAsJsonLocal 可以在单元格中的所有数据类型。 示例包括格式化数字值和 Web 图像,以及标准布尔值、数字和字符串值。 从此 API 返回的数据始终与用户的显示区域设置一致。 要检索独立于区域设置的数据,请使用 NamedItem.valueAsJson

readonly valueAsJsonLocal: CellValue | string;

属性值

Excel.CellValue | string

注解

API 集:ExcelApi 1.16

visible

指定对象是否可见。

visible: boolean;

属性值

boolean

注解

API 集:ExcelApi 1.1

worksheet

返回已命名项限定到的工作表。 如果项目的范围限定为工作簿,则引发错误。

readonly worksheet: Excel.Worksheet;

属性值

注解

API 集:ExcelApi 1.4

worksheetOrNullObject

返回命名项目所限定的工作表。 如果项目的范围限定为工作簿,则此方法返回其 isNullObject 属性设置为 true的对象。 有关详细信息,请参阅 *OrNullObject 方法和属性

readonly worksheetOrNullObject: Excel.Worksheet;

属性值

注解

API 集:ExcelApi 1.4

方法详细信息

delete()

删除给定的名称。

delete(): void;

返回

void

注解

API 集:ExcelApi 1.4

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/34-named-item/create-and-remove-named-item.yaml

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Sample");
    const totalName = sheet.names.getItemOrNullObject("TotalAmount");
    totalName.load();
    await context.sync();

    if (totalName.value) {
        totalName.delete();

        // Replace the named item (TotalAmount) with the actual formula for TotalAmount to avoid displaying #NAME in the cell.
        sheet.getRange("D11").values = [["=SUM(ExpensesTable[AMOUNT])"]];
    } else {
        console.log("No named item created for the formula.");
    }

    await context.sync();
});

getRange()

返回与名称相关联的 Range 对象。 如果已命名项的类型不是 Range,将引发错误。

getRange(): Excel.Range;

返回

注解

API 集:ExcelApi 1.1

示例

// Returns the Range object that is associated with the name.
// Returns `null` if the name is not of type Range.
// Note: This API currently supports only the Workbook scoped items.
await Excel.run(async (context) => { 
    const names = context.workbook.names;
    const range = names.getItem('MyRange').getRange();
    range.load('address');
    await context.sync();

    console.log(range.address);
});

getRangeOrNullObject()

返回与名称相关的 range 对象。 如果命名项的类型不是范围,则此方法将返回其 isNullObject 属性设置为 true的对象。 有关详细信息,请参阅 *OrNullObject 方法和属性

getRangeOrNullObject(): Excel.Range;

返回

注解

API 集:ExcelApi 1.4

load(options)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(options?: Excel.Interfaces.NamedItemLoadOptions): Excel.NamedItem;

参数

options
Excel.Interfaces.NamedItemLoadOptions

为要加载的对象属性提供选项。

返回

load(propertyNames)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

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

参数

propertyNames

string | string[]

指定要加载的属性的逗号分隔的字符串或字符串数组。

返回

示例

await Excel.run(async (context) => { 
    const names = context.workbook.names;
    const namedItem = names.getItem('MyRange');
    namedItem.load('type');
    await context.sync();
    
    console.log(namedItem.type);
});

load(propertyNamesAndPaths)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): Excel.NamedItem;

参数

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select 是指定要加载的属性的逗号分隔字符串,以及 propertyNamesAndPaths.expand 指定要加载的导航属性的逗号分隔字符串。

返回

set(properties, options)

同时设置对象的多个属性。 可以传递具有相应属性的纯文本对象,也可以传递另一个相同类型的 API 对象。

set(properties: Interfaces.NamedItemUpdateData, options?: OfficeExtension.UpdateOptions): void;

参数

properties
Excel.Interfaces.NamedItemUpdateData

一个 JavaScript 对象,其属性与调用该方法的对象的属性同构结构。

options
OfficeExtension.UpdateOptions

提供一个选项,用于在 properties 对象尝试设置任何只读属性时禁止错误。

返回

void

set(properties)

基于现有加载的对象,同时在对象上设置多个属性。

set(properties: Excel.NamedItem): void;

参数

properties
Excel.NamedItem

返回

void

toJSON()

覆盖 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 (JSON.stringify反过来调用 toJSON 传递给它的对象的方法。) 虽然原始 Excel.NamedItem 对象是 API 对象, toJSON 但该方法返回一个纯 JavaScript 对象, (类型化为 Excel.Interfaces.NamedItemData) ,其中包含从原始对象加载的任何子属性的浅层副本。

toJSON(): Excel.Interfaces.NamedItemData;

返回