Excel.DataValidation class
表示应用于当前范围的数据验证。 若要详细了解数据验证对象模型,请阅读 向 Excel 区域添加数据验证。
- 扩展
注解
属性
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: "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: "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
表示所有单元格值根据数据有效性规则是否全部有效。
true
如果所有单元格值都有效,或者false
所有单元格值都无效,则返回 。
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;