我有一个数字,有指定为可允许值的下拉列表数据验证单元的工作簿中的Excel单元格资料验证列表。使用EPPlus,我希望能够获得每个这样的单元格的允许值列表。如何找到使用EPPlus
到目前为止我有:
ExcelWorkSheet.DataValidations
给我一个ExcelDataValidationCollection
,这是IExcelDataValidation
项目工作表的集合。每个
IExcelDataValidation
都有一个ExcelAddress
类型的地址属性,它可能会引用具有该验证规则的所有单元格。我卡上的步骤是找到一个给定的细胞是包含在
ExcelAddress
任何考生的一个细胞?
我目前使用EPPlus 3.1.1.0,但如果需要可以升级到最新版本。
UPDATE
我没有解释这显然不够。这是我更详细的情况。
假设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
sheet.Cells [list.Formula.ExcelFormula]你确定这是工作? – kassi