我正在寻找打开和阅读Excel文件的代码,包括2010年的任何版本的Excel.我的一个列中有一个下拉列表.我需要在下拉列表中获取所选项目的值.我最终希望将这些值填充到业务对象中.
如果有人要分享一些代码,请告诉我.
我正在使用C#和Visual Studio 2010.
谢谢.
最佳答案 我知道ActiveX组合和表单下拉列表的VBA,基于此,我可以为表格下拉列表给出一些非常不合格的c#笔记,这个组合还没有我.
使用来自: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);
来自:http://www.eggheadcafe.com/community/aspnet/66/10117559/excel-get-value-from-a-combobox.aspx