如何从Excel 2010中find数据validation源

我有一个有很多数据validation的Excel模板,我需要将数据validationfunction转换为AC#代码。

我无法find设置数据validation值的单元格范围。 数据validation正根据单元大小调整来调整其大小。

任何猜测? 我在网上搜了很多,但找不到合适的解决scheme。

如果一个单元格(比如说Sheet1!A1有一个数据validation),那么为了检索提供数据validation值的范围,可以在VBA中使用以下内容:

 Sheet1.Range("A1").Validation.Formula1 

使用Excel Interop,您可以在C#中(未经testing)执行此操作:

 Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; Microsoft.Office.Interop.Excel.Range xlRange; Microsoft.Office.Interop.Excel.Validation xlValidation; string validationSource; // Set Sheet 1 as the sheet you want to work with xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); // get range xlRange = xlWorkSheet.get_Range("A1", System.Reflection.Missing.Value); // get validation object xlValidation = xlRange.Validation; // get source validationSource = (string)xlValidation.Formula1; 

看到这里 。

HTH