【发布时间】:2017-03-02 16:12:41
【问题描述】:
我有一个工作簿,其中包含多个单元格,这些单元格将数据验证指定为允许值的下拉列表。使用 EPPlus,我希望能够为每个这样的单元格获取允许值的列表。
到目前为止,我得到了:
ExcelWorkSheet.DataValidations给了我一个ExcelDataValidationCollection,它是工作表的IExcelDataValidation项的集合。每个
IExcelDataValidation都有一个ExcelAddress类型的地址属性,它可能引用了所有具有该验证规则的单元格。我坚持的步骤是查找给定单元格是否是
ExcelAddress中包含的单元格之一
有接受者吗?
我目前使用的是 EPPlus 3.1.1.0,但如有必要可以升级到更新的版本。
更新
我解释得不够清楚。这是我更详细的情况。
-
假设 C 列有一些带有列表数据验证的单元格。一些单元格允许,比如说,“A,B,C”;其他单元格允许“D、E、F”等。每个数据验证列表的单元格范围不连续,例如:
- C2、C4、C7-C10、C20 可能允许“A、B、C”
- C3、C5-C6"、C15 可能允许 "D,E,F"
我正在尝试确定哪些单元格允许“A、B、C”以及哪些单元格允许“D、E、F”等。
ExcelWorksheet.DataValidations 包含 ExcelDataValidationList 项,一项为“A,B,C”,一项为“D,E,F”等。
列表“A,B,C”的 ExcelDataValidationList.Address 包含一个 ExcelAddress,其 Address 属性类似于:“C4 C7:C10 C2 C20 ...”。
我想确定给定单元格(例如 C6)是否包含在此地址“C4 C7:C10 C2 C20 ...”指定的范围内。
当然,我可以对空格进行 String.Split,然后解析结果列表中的每个项目。但我希望有一些更直接的方法可以做到这一点,例如
ExcelAddress.Contains("C6")
或
ExcelAddress.Contains(6, 2) // row 6 col 2 = C6
【问题讨论】: