Excel.DataValidation class

表示应用于当前范围的数据验证。 若要了解有关数据验证对象模型的详细信息,请阅读将数据验证添加到 Excel 范围。

扩展

注解

API 集:ExcelApi 1.8

使用方

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/22-data-validation/data-validation-types.yaml

function applyWholeNumber(sheet: Excel.Worksheet) {
    // Only integers greater than 0 are allowed.
    const basicRule: Excel.BasicDataValidation = {
        formula1: 0,
        operator: Excel.DataValidationOperator.greaterThan
    };
    const rule: Excel.DataValidationRule = { wholeNumber: basicRule };
    sheet.getRange("B2").dataValidation.rule = rule;
}

属性

context

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

errorAlert

用户输入无效数据时,出现错误警报。

ignoreBlanks

指定是否对空白单元格执行数据验证。 默认值为 true

prompt

用户选择单元格时提示。

rule

包含不同类型的数据验证条件的数据验证规则。

type

数据验证的类型,请参阅 Excel.DataValidationType 详细信息。

valid

表示所有单元格值根据数据有效性规则是否全部有效。 返回所有单元格值均有效或false所有单元格值无效时返回true。 如果区域内同时存在有效和无效单元格值,则返回 null

方法

clear()

清除当前区域中的数据有效性。

getInvalidCells()

返回 RangeAreas 包含一个或多个矩形区域且单元格值无效的对象。 如果所有单元格值都有效,则此函数将抛出 ItemNotFound 错误。

getInvalidCellsOrNullObject()

返回 RangeAreas 包含一个或多个矩形区域且单元格值无效的对象。 如果所有单元格值都有效,则此函数将返回 null

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.DataValidation 对象是 API 对象, toJSON 但该方法返回一个纯 JavaScript 对象, (类型化为 Excel.Interfaces.DataValidationData) ,其中包含从原始对象加载的任何子属性的浅层副本。

属性详细信息

context

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

context: RequestContext;

属性值

errorAlert

用户输入无效数据时,出现错误警报。

errorAlert: Excel.DataValidationErrorAlert;

属性值

注解

API 集:ExcelApi 1.8

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/22-data-validation/data-validation.yaml

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Decision");
    const commentsRange = 
        sheet.tables.getItem("NameOptionsTable").columns.getItem("Comments").getDataBodyRange();

    // When you are developing, it is a good practice to
    // clear the dataValidation object with each run of your code.
    commentsRange.dataValidation.clear();   

    // If the value of A2 is contained in the value of C2, then 
    // SEARCH(A2,C2) returns the number where it begins. Otherwise,
    // it does not return a number.
    let redundantStringRule = {
        custom: {
            formula: "=NOT(ISNUMBER(SEARCH(A2,C2)))"
        }
    };
    commentsRange.dataValidation.rule = redundantStringRule;
    commentsRange.dataValidation.errorAlert = {
        message: "It is redundant to include the baby name in the comment.",
        showAlert: true,
        style: Excel.DataValidationAlertStyle.information,
        title: "Baby Name in Comment"
    };

    await context.sync();
});

ignoreBlanks

指定是否对空白单元格执行数据验证。 默认值为 true

ignoreBlanks: boolean;

属性值

boolean

注解

API 集:ExcelApi 1.8

prompt

用户选择单元格时提示。

prompt: Excel.DataValidationPrompt;

属性值

注解

API 集:ExcelApi 1.8

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/22-data-validation/data-validation.yaml

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Decision");
    const rankingRange = sheet.tables.getItem("NameOptionsTable").columns.getItem("Ranking").getDataBodyRange();

    // When you are developing, it is a good practice to
    // clear the dataValidation object with each run of your code.
    rankingRange.dataValidation.clear();

    let greaterThanZeroRule = {
        wholeNumber: {
            formula1: 0,
            operator: Excel.DataValidationOperator.greaterThan
        }
    };
    rankingRange.dataValidation.rule = greaterThanZeroRule;

    rankingRange.dataValidation.prompt = {
        message: "Please enter a positive number.",
        showPrompt: true,
        title: "Positive numbers only."
    };

    rankingRange.dataValidation.errorAlert = {
        message: "Sorry, only positive numbers are allowed",
        showAlert: true,
        style: Excel.DataValidationAlertStyle.stop,
        title: "Negative Number Entered"
    };

    await context.sync();
});

rule

包含不同类型的数据验证条件的数据验证规则。

rule: Excel.DataValidationRule;

属性值

注解

API 集:ExcelApi 1.8

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/22-data-validation/data-validation.yaml

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Decision");
    const nameRange = 
        sheet.tables.getItem("NameOptionsTable").columns.getItem("Baby Name").getDataBodyRange();

    // When you are developing, it is a good practice to
    // clear the dataValidation object with each run of your code.
    nameRange.dataValidation.clear();

    const nameSourceRange = context.workbook.worksheets.getItem("Names").getRange("A1:A3");

    let approvedListRule = {
        list: {
            inCellDropDown: true,
            source: nameSourceRange
        }
    };
    nameRange.dataValidation.rule = approvedListRule;

    await context.sync();
});

type

数据验证的类型,请参阅 Excel.DataValidationType 详细信息。

readonly type: Excel.DataValidationType | "None" | "WholeNumber" | "Decimal" | "List" | "Date" | "Time" | "TextLength" | "Custom" | "Inconsistent" | "MixedCriteria";

属性值

Excel.DataValidationType | "None" | "WholeNumber" | "Decimal" | "List" | "Date" | "Time" | "TextLength" | "Custom" | "Inconsistent" | "MixedCriteria"

注解

API 集:ExcelApi 1.8

valid

表示所有单元格值根据数据有效性规则是否全部有效。 返回所有单元格值均有效或false所有单元格值无效时返回true。 如果区域内同时存在有效和无效单元格值,则返回 null

readonly valid: boolean;

属性值

boolean

注解

API 集:ExcelApi 1.8

方法详细信息

clear()

清除当前区域中的数据有效性。

clear(): void;

返回

void

注解

API 集:ExcelApi 1.8

getInvalidCells()

返回 RangeAreas 包含一个或多个矩形区域且单元格值无效的对象。 如果所有单元格值都有效,则此函数将抛出 ItemNotFound 错误。

getInvalidCells(): Excel.RangeAreas;

返回

注解

API 集:ExcelApi 1.9

getInvalidCellsOrNullObject()

返回 RangeAreas 包含一个或多个矩形区域且单元格值无效的对象。 如果所有单元格值都有效,则此函数将返回 null

getInvalidCellsOrNullObject(): Excel.RangeAreas;

返回

注解

API 集:ExcelApi 1.9

load(options)

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

load(options?: Excel.Interfaces.DataValidationLoadOptions): Excel.DataValidation;

参数

options
Excel.Interfaces.DataValidationLoadOptions

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

返回

load(propertyNames)

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

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

参数

propertyNames

string | string[]

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

返回

load(propertyNamesAndPaths)

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

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

参数

propertyNamesAndPaths

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

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

返回

set(properties, options)

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

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

参数

properties
Excel.Interfaces.DataValidationUpdateData

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

options
OfficeExtension.UpdateOptions

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

返回

void

set(properties)

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

set(properties: Excel.DataValidation): void;

参数

返回

void

toJSON()

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

toJSON(): Excel.Interfaces.DataValidationData;

返回