我有一個數字,有指定爲可允許值的下拉列表數據驗證單元的工作簿中的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