从下拉菜单中读取Excel数据到C#对象数组中

从C#中我试图从一个Excel工作表读取数据到一个C#对象。

一切工作正常,除了一个小的细节,下拉列表中的Excel数据。

不知何故,对于每个相应的Excel下拉列表条目,数组中的结果为空。

我的代码到目前为止:

var range = sheet.get_Range("A1", "D3"); var valuearray = (Object[,])range.get_Value(XlRangeValueDataType.xlRangeValueDefault); 

只要单元格数据不是源于Excel下拉列表valuearray获取正确的值。 但是,只要数据来自下拉列表,valuearray条目就是null。

欣赏任何input,Danne 🙂

您看到的问题是因为下拉的数据实际上不存储在Range对象本身中。 如果你看看你的WorkSheet对象,你会注意到一个DropDown方法。 这将返回一个DropDowns对象,然后您可以调用Item来获取单独的DropDown。 从那里,你可以在DropDown本身的列表中工作,如:

 (assuming: using Excel = Microsoft.Office.Interop.Excel) Excel.DropDowns allDropDowns = YourWorkSheet.DropDowns(Type.Missing); Excel.DropDown oneDropdown = allDropDowns.Item(YourIndex); 

我没有改变挖掘从DropDown获得项目(只添加更多的AddItem),但获取列表和获取选定的方法似乎是一个很好的开始。