如何使用c#使Excel单元格成为组合框?

时间:2013-10-21 21:06:34

标签: c# excel

我一直在网上搜索但找不到将单元格转换为组合框的方法(或者有时会调用它们的下拉菜单)?我正在使用Microsoft.Office.Interop.Excel版本14.0(运行时版本2.0.50727)。

2 个答案:

答案 0 :(得分:5)

以下是我试图实现的解决方案:

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);
}

答案 1 :(得分:1)

嗯,一个Excel托管的.Net组合框肯定存在。 这篇文章中的示例代码有用吗?

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

这里的视频非常有用: http://msdn.microsoft.com/en-US/office/hh133459