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

时间:2009-10-06 10:04:23

标签: c# excel drop-down-menu

从C#中我试图将Excel表格中的数据读入C#对象。

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

对于每个相应的Excel下拉列表条目,数组中的结果都为null。

我的代码到目前为止:

 var range = sheet.get_Range("A1", "D3");

 var valuearray = (Object[,])range.get_Value(XlRangeValueDataType.xlRangeValueDefault);

只要单元格数据不是来自Excel下拉列表,valuearray就会获得正确的值。但是,只要数据来自下拉列表,valuearray条目就为空。

欣赏任何意见,Danne: - )

1 个答案:

答案 0 :(得分:1)

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

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

我没有进行任何改变以深入了解DropDown中的项目(仅使用AddItem添加更多内容),但Get List和Get Selected方法似乎是一个很好的起点。