Excel.DataValidation class
表示应用于当前范围的数据验证。 若要了解有关数据验证对象模型的详细信息,请阅读将数据验证添加到 Excel 范围。
注解
使用方
示例
// 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 主机应用程序的进程。 |
| error |
用户输入无效数据时,出现错误警报。 |
| ignore |
指定是否对空白单元格执行数据验证。 默认值为 |
| prompt | 用户选择单元格时提示。 |
| rule | 包含不同类型的数据验证条件的数据验证规则。 |
| type | 数据验证的类型,请参阅 |
| valid | 表示所有单元格值根据数据有效性规则是否全部有效。 返回所有单元格值均有效或 |
方法
| clear() | 清除当前区域中的数据有效性。 |
| get |
返回 |
| get |
返回 |
| load(options) | 将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
| load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
| load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
| set(properties, options) | 同时设置对象的多个属性。 可以传递具有相应属性的纯文本对象,也可以传递另一个相同类型的 API 对象。 |
| set(properties) | 基于现有加载的对象,同时在对象上设置多个属性。 |
| toJSON() | 覆盖 JavaScript |
属性详细信息
context
errorAlert
用户输入无效数据时,出现错误警报。
errorAlert: Excel.DataValidationErrorAlert;
属性值
注解
示例
// 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
prompt
用户选择单元格时提示。
prompt: Excel.DataValidationPrompt;
属性值
注解
示例
// 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;
属性值
注解
示例
// 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"
注解
valid
表示所有单元格值根据数据有效性规则是否全部有效。 返回所有单元格值均有效或false所有单元格值无效时返回true。 如果区域内同时存在有效和无效单元格值,则返回 null 。
readonly valid: boolean;
属性值
boolean
注解
方法详细信息
clear()
getInvalidCells()
返回 RangeAreas 包含一个或多个矩形区域且单元格值无效的对象。 如果所有单元格值都有效,则此函数将抛出 ItemNotFound 错误。
getInvalidCells(): Excel.RangeAreas;
返回
注解
getInvalidCellsOrNullObject()
返回 RangeAreas 包含一个或多个矩形区域且单元格值无效的对象。 如果所有单元格值都有效,则此函数将返回 null。
getInvalidCellsOrNullObject(): Excel.RangeAreas;
返回
注解
load(options)
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()。
load(options?: Excel.Interfaces.DataValidationLoadOptions): Excel.DataValidation;
参数
为要加载的对象属性提供选项。
返回
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;
参数
- properties
- Excel.DataValidation
返回
void
toJSON()
覆盖 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 (JSON.stringify反过来调用 toJSON 传递给它的对象的方法。) 虽然原始 Excel.DataValidation 对象是 API 对象, toJSON 但该方法返回一个纯 JavaScript 对象, (类型化为 Excel.Interfaces.DataValidationData) ,其中包含从原始对象加载的任何子属性的浅层副本。
toJSON(): Excel.Interfaces.DataValidationData;