从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: - )
答案 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方法似乎是一个很好的起点。