EPPLUS:如何检查所有单元格是否有效?

问题描述 投票:0回答:1

我正在使用 Excel 的数据验证列表,检查单元格值是否在动态范围内(另一列的单元格值)。

问题是,如果我在源范围中添加一个值(例如“A”),我可以通过数据验证在单元格上输入该值。但是,如果我更改源(例如从“A”到“B”),具有数据验证的单元格仍然是“A”。

在 Excel 中,有一个按钮可以在无效数据周围设置红色圆圈,但客户端并不总是检查一切是否正常。

我可以通过 EPPLUS 进行检查吗?

c# excel epplus
1个回答
1
投票

文档并未建议可以执行此检查。

  • EPPlus Features 页面提到“创建、读取、修改、删除数据验证”并链接到 Data Validation wiki 页面,但这仅涉及以编程方式定义数据验证规则 - 而不是关于单元格的值是否符合数据验证规则。

  • 我搜索了源代码并查看了ExcelDataValidation.cs及其各种子类型。他们的“验证”方法仅检查验证是否根据 Excel 规则正确定义。

  • 找到了

    InternalValidationEnabled
    属性(见下文),但我认为它只是为了检查数据验证规则本身的一致性,而不是为了检查单元格是否符合它们。

为了实现您的要求,您必须使用 EPPlus 从单元格中获取验证,根据其类型对其进行解释并评估单元格内容。有一个涉及某些案例的示例,可以让您了解其发展方向。

事实是,一旦数据验证规则开始涉及 Excel 公式/函数,事情就会变得复杂。内置 Excel 函数是在 Excel 应用程序(Web、桌面、移动等)中实现的,因此它们也必须在框架本身(在本例中为 EPPlus)中实现。例如,请参阅 Java 中的 Apache POI 的 Excel 函数实现。请参阅此答案了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.