如何让Excel单元格使用C#combobox?

我一直在寻找networking,但无法find一种方法来把一个单元格变成一个combobox(或下拉,因为他们似乎有时被称为)? 我正在使用Microsoft.Office.Interop.Excel版本14.0(运行时版本2.0.50727)。

这是我试图实现的解决scheme:

Excel.Application App = null; Excel.Workbook Book = null; Excel.Worksheet Sheet = null; object Missing = System.Reflection.Missing.Value; try { App = new Excel.Application(); Book = App.Workbooks.Add(); Sheet = (Excel.Worksheet) Book.Worksheets[1]; Excel.Range Range = Sheet.get_Range("B2", "B2"); Range.Validation.Add(Excel.XlDVType.xlValidateList , Excel.XlDVAlertStyle.xlValidAlertStop , Excel.XlFormatConditionOperator.xlBetween , "Item1,Item2,Item3" , Type.Missing); Range.Validation.InCellDropdown = true; Range.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.FromArgb(255, 217, 217, 0)); App.Visible = true; } finally { Base.ReleaseObject(Sheet); Base.ReleaseObject(Book); Base.ReleaseObject(App); } 

那么,一个Excel宿主.Netcombobox绝对存在。 该post中的示例代码是否有帮助?

http://msdn.microsoft.com/en-us/library/ee259140(v=vs.100).aspx

 Private Sub ExcelRangeAddComboBox() Dim ComboBox1 As Microsoft.Office.Tools.Excel. _ Controls.ComboBox = Me.Controls.AddComboBox( _ Me.Range("A1", "B1"), "ComboBox1") ComboBox1.Items.Add("First Item") ComboBox1.Items.Add("Second Item") ComboBox1.SelectedIndex = 0 End Sub 

如果您不熟悉开发加载项,以下内容可能会帮助您开始: http : //msdn.microsoft.com/en-us/library/cc442981( v=vs.100) .aspx

这里的video非常有帮助: http : //msdn.microsoft.com/en-US/office/hh133459