在 C# 中将数据验证应用于 Excel 单元格





5.00/5 (5投票s)
本文提供了一种在 C# 中为 Excel 单元格添加数据验证的解决方案。
引言
数据验证是 Excel 的一项功能,可用于定义单元格中可以或应该输入的数据限制。例如,您可能希望将数据输入限制为特定范围的数字,或通过使用列表来限制选项。 本技巧介绍了如何使用免费 Excel API 和 C# 以编程方式向单元格添加数据验证。
这个 Excel 库提供了一个名为 CellRange
的类,其中包含 DataValidation
属性,使程序员能够直接处理特定单元格或范围内的验证。
- 如何添加数字验证
- 如何创建列表验证
- 如何处理数据验证警报
Using the Code
第一部分 - 限制数据输入为范围内的十进制数
初始化 Workbook
类的对象,并获取第一个工作表以写入数据。
Workbook wb = new Workbook();
Worksheet sheet = wb.Worksheets[0];
在单元格 B9 中输入相同的文本并格式化单元格。
sheet.Range["B9"].Text = "Input Number:";
sheet.Range["B9"].Style.Font.IsBold = true;
sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;
通过将允许的数据类型设置为十进制数、设置数据范围和比较运算符来为 C9 添加数字验证。为了让用户知道应在单元格中输入哪种类型的数据,您可以选择在用户选择单元格时显示输入消息。
sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;
sheet.Range["C9"].DataValidation.Formula1 = "1";
sheet.Range["C9"].DataValidation.Formula2 = "10";
sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;
sheet.Range["C9"].DataValidation.InputMessage = "Type a number between 1-10 in this cell.";
sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;
输出
第二部分 - 限制输入到列表中预定义的项目
在单元格 B2 中插入一些数据并格式化单元格。
sheet.Range["B2"].Text = "Department:";
sheet.Range["B2"].Style.Font.IsBold = true;
sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;
要创建单元格内的下拉列表,我们需要在源中输入一些数据,这些数据将显示为项目,然后将 IsSuppressDropDownArrow
属性设置为 false
以显示箭头按钮,单击该按钮将显示 dropdown
列表。
sheet.Range["C2"].DataValidation.Values = new string[]{ "Sales", "HR", "R&D", "Finance" };
sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;
sheet.Range["C2"].Style.KnownColor = ExcelColors.LightGreen1;
输出
第三部分 - 自定义数据验证警报
一旦应用了数据验证,人们将不允许在不符合单元格中验证的数据的单元格中输入数据。 如果他们这样做,他们将看到数据验证错误警报。
与其显示默认的错误警报,我们还可以通过以下方法自定义错误警报
sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;
sheet.Range["C2"].DataValidation.ShowError = true;
sheet.Range["C2"].DataValidation.ErrorTitle = "Error001";
sheet.Range["C2"].DataValidation.ErrorMessage = "Please select an item from list!";
结论
本文仅提供数字和列表验证的示例,如果您有兴趣,可以下载此项目(不包括 DLL 文件)并创建验证以限制数据输入为时间范围内的日期/时间、限制数据输入为指定长度的文本等。