我想使用已添加到 .xlsx 模板中的数据验证以编程方式检查单元格值是否有效。有一种方法可以在 Java 中使用 Apache POI DataValidationEvaluator 类来做到这一点,但我在 C Sharp 的任何开源库中都找不到类似的功能(目前使用 nissl-lab npoi)。
我已经尝试迭代工作表中的验证并验证单元格值,但我不确定是否需要自己实现低级逻辑,或者是否有已经制作的用于验证评估的 API?
foreach (var s in sheets)
{
ISheet sheet = wb.GetSheet(s.Name);
var validations = sheet.GetDataValidations();
foreach (var v in validations)
{
var xssfValidation = (XSSFDataValidation)v;
var xssfValidationConstraint = xssfValidation.ValidationConstraint;
switch (xssfValidationConstraint.Operator)
{
case 0:
// BETWEEN
break;
case 1:
// EQUAL
break;
// ...
}
}
NPOI.SS.Formula.DataValidationEvaluator
类似乎镜像了Apache POI的DataValidationEvaluator
类,但截至2023年11月20日,NPOI的版本只有一种方法,IsType
(其规格与Apache POI的相同) isType
虽然)。
截至 2023 年 11 月 20 日,似乎没有 C# 或 F# Excel 项目本身支持此功能。来自这个答案:
有内置的单元格验证吗? 开放XML SDK 不* NPOI 不* EPPlus 没有? (参见下文第 3 节) 封闭XML 不* *非权威答案(即帖子作者找不到支持证据)