数据验证

数据验证类型和执行

Microsoft Excel 支持许多不同类型的数据验证。 每种类型用于控制输入到单元格或单元格范围中的数据类型。 下面的代码片段说明了如何验证:

Microsoft Excel中的数据验证

要使用Microsoft Excel创建验证:

  1. 在工作表中,选择要应用验证的单元格。

  2. 数据菜单中,选择验证。 将显示验证对话框。

  3. 单击设置选项卡,并输入下方显示的设置。 

    数据验证设置

todo:image_alt_text

Aspose.Cells中的数据验证

数据验证是一项强大的功能,可验证输入工作表的信息。借助数据验证,开发人员可以为用户提供选择列表,限制数据输入为特定类型或大小等功能。 在Aspose.Cells中,每个Worksheet类都有一个Validations对象,该对象表示一组Validation对象。要设置验证,请设置Validation类的一些属性:

  • Type:表示验证类型,可以使用ValidationType枚举中的预定义值来指定。
  • Operator:表示验证中要使用的运算符,可以使用OperatorType枚举中的预定义值来指定。
  • Formula1:表示与数据验证第一部分相关联的值或表达式。
  • Formula2:表示与数据验证第二部分相关联的值或表达式。

Validation对象的属性配置完成后,开发人员可以使用CellArea结构来存储关于将使用创建的验证进行验证的单元格范围的信息。

数据验证类型

数据验证允许您在每个单元格中构建业务规则,以便不正确的输入会导致错误消息。业务规则是管理业务运作的政策和程序。Aspose.Cells支持所有重要类型的数据验证。

ValidationType枚举具有以下成员:

成员名称 描述
ANY_VALUE 表示任何类型的值。
WHOLE_NUMBER 表示整数验证类型。
DECIMAL 表示小数验证类型。
LIST 表示下拉列表验证类型。
DATE 表示日期验证类型。
TIME 表示时间验证类型。
TEXT_LENGTH 表示文本长度验证类型。
CUSTOM 表示自定义验证类型。

编程示例:整数数据验证

使用此类型的验证,用户只能在验证的单元格中输入指定范围内的整数。接下来的代码示例展示了如何实现WHOLE_NUMBER验证类型。示例创建了一个与我们在Microsoft Excel中创建的相同的数据验证,使用Aspose.Cells。

编程示例:小数数据验证

使用此类型的验证,用户可以在验证的单元格中输入小数。在示例中,用户被限制只能输入小数值,并且验证区域是A1:A10。

编程示例:列表数据验证

此验证类型允许用户从下拉列表中输入值。它提供了一个列表:包含数据的一系列行。用户只能从列表中选择值。验证区域是第一个工作表中的单元格范围A1:A5。

在这里很重要的是将Validation.setInCellDropDown属性设置为true

编程示例: 日期数据验证

使用此类型的验证,用户可以在验证单元格中输入符合指定范围或特定条件的日期值。在此示例中,用户被限制只能输入1970年至1999年之间的日期。这里,验证区域是B1单元格。

编程示例: 时间数据验证

使用此类型的验证,用户可以在验证单元格中输入符合指定范围或特定条件的时间值。在此示例中,用户被限制只能输入上午09:00至11:30之间的时间。这里,验证区域是B1单元格。

编程示例: 文本长度数据验证

使用此类型的验证,用户可以在验证单元格中输入指定长度的文本值。在此示例中,用户被限制只能输入不超过5个字符的字符串值。验证区域是B1单元格。

数据验证规则

当实施数据验证时,可以通过在单元格中分配不同的值来检查验证。Cell.GetValidationValue() 可用于获取验证结果。以下示例演示了使用不同值的此功能。可从以下链接下载示例文件进行测试:

SampleDataValidationRules.xlsx

示例代码

检查单元格中的验证是否为下拉框

正如我们所见,可以在单元格中实施许多类型的验证。如果您想检查验证是否为下拉框,可以使用Validation.InCellDropDown 属性进行测试。以下示例代码演示了该属性的用法。可从以下链接下载示例文件进行测试:

sampleDataValidationRules.xlsx

为现有验证添加CellArea

也许会有这样的情况,您可能希望向现有验证添加CellArea。通过使用Validation.AddArea(CellArea cellArea),Aspose.Cells会检查所有现有区域,看看新区域是否已经存在。如果文件具有大量验证,这将影响性能。为解决此问题,API提供了Validation.AddAreaCellArea cellArea, bool checkIntersection, bool checkEdge) 方法。checkIntersection参数指示是否检查给定区域与现有验证区域的交集。将其设置为false将禁用其他区域的检查。checkEdge参数指示是否检查已应用的区域。如果新区域成为左上角区域,内部设置将重新构建。如果您确信新区域不是左上角区域,可以将此参数设置为false

以下代码片段演示了使用Validation.AddAreaCellArea cellArea, bool checkIntersection, bool checkEdge) 方法向现有验证添加新的CellArea

源和输出的Excel文件已附上供参考。

源文件

输出文件

高级主题