如何使用C#获取Excel下拉列表中的值

我正在寻找代码来打开和阅读Excel文件,包括2010年的任何版本的Excel。我的一列中有一个下拉列表。 我需要在下拉菜单中获取所选项目的值。 我最终想要将这些值填充到业务对象中。

如果有人有一些代码分享请让我知道。

我正在使用C#和Visual Studio 2010。

谢谢。

我知道ActiveX组合和表单下拉列表的VBA,基于这一点,我可以给你一些非常不熟悉的C#的forms下拉笔记,组合还没有回避。

使用来自http://support.microsoft.com/kb/302084的笔记

//Get a new workbook. oWB = (Excel._Workbook)(oXL.Workbooks.Open("C:\\Docs\\Book1.xls")); //3rd Sheet oSheet = (Excel._Worksheet)oWB.Sheets.get_Item(3); //This will return an index number var i = oSheet.Shapes.Item("Drop Down 1").ControlFormat.Value; //This will return the fill range var r = oSheet.Shapes.Item("Drop Down 1").ControlFormat.ListFillRange; oRng = oSheet.get_Range(r); //This will return the value of the dropdown, based on the index //and fillrange var a =oRng.get_Item(i).Value; //Just to check textBox1.Text = a; 

这可能有助于一个ActiveX组合,但我只有一半得到它的工作:

 using MSForm = Microsoft.Vbe.Interop.Forms; <...> Excel.OLEObject cbOLEObj = (Excel.OLEObject)workSheet.OLEObjects("ComboBox1"); MSForm.ComboBox ComboBox1 = (MsForm.ComboBox) cbOLEObj.Object; Console.WriteLine(ComboBox1.Text); 

From: http : //www.eggheadcafe.com/community/aspnet/66/10117559/excel-get-value-from-a-combobox.aspx