【问题标题】:Read Excel data from Drop down into C# object array从下拉列表中读取 Excel 数据到 C# 对象数组
【发布时间】:2009-10-06 10:04:22
【问题描述】:

在 C# 中,我尝试将 Excel 工作表中的数据读取到 C# 对象中。

一切都很好,除了一个小细节,下拉列表中的 Excel 数据。

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

到目前为止我的代码如下:

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

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

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

感谢任何意见,丹妮 :-)

【问题讨论】:

    标签: c# excel drop-down-menu


    【解决方案1】:

    您看到的问题是因为下拉列表的数据实际上并未存储在 Range 对象本身中。如果您查看您的 WorkSheet 对象,您会注意到一个 DropDowns 方法。这将返回一个 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 添加更多),但是 Get List 和 Get Selected 方法似乎是一个不错的起点。

    【讨论】:

    • @Wolfwyrd 我尝试过使用它,但收到异常:“mscorlib.dll 中发生‘System.Runtime.InteropServices.COMException’类型的未处理异常附加信息:DropDowns 类的项方法失败" 你知道为什么会这样吗?
    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多