我一直在尋找網絡,但無法找到一種方法將細胞變成組合框(或者它們似乎有時稱爲下拉列表)?我正在使用Microsoft.Office.Interop.Excel版本14.0(運行時版本2.0.50727)。如何使用c#使Excel單元格成爲組合框?
回答
下面是我嘗試實現的解決方案:
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);
}
在我的情況下,這隻在使用';'作爲項目分隔符而不是','時才起作用。另外,我必須在Range.Validation.Add之前調用'Range.Validation.Delete'來避免VSTO的異常。 –
@MarekDzikiewicz:如果您的語言環境設置使用逗號作爲十進制分隔符,則會發生這種情況,那麼您需要使用; – DrDonut
那麼,一個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
如果you'rr不熟悉開發插件,下面可能會幫助您開始: http://msdn.microsoft.com/en-us/library/cc442981(v=vs.100).aspx
和這裏的影片是非常有益的: http://msdn.microsoft.com/en-US/office/hh133459
- 1. Excel組合框 - 如何使用Tab鍵選擇單元格?
- 2. 如何在WPF DataGrid中使用單元格級組合框?
- 3. 如何使用DisplayStyle ComboBoxList創建組合框單元格?
- 4. 使用office.js合併excel單元格
- 5. 如何在Excel表格中使用宏來生成單元格?
- 6. 使用C#讀取Excel單元格
- 7. 如何使用c#不使用Excel填充背景顏色的Excel單元格?
- 8. 表格組合框中的Excel VBA循環單元格鏈接
- 9. 如何使用VBA檢測不適合Excel單元格的值?
- 10. 如何合併使用ASP的Excel單元格
- 11. 如何使用C#在Excel中讀取組合框的值
- 12. 如何在使用LWUIT - J2ME的表格單元格中添加組合框?
- 13. 在Excel單元格中使用C製作邊框#
- 14. 如何使Excel作爲不可編輯的單元格的範圍使用C#
- 15. 重新生成Excel合併單元格
- 16. 如何在c中使用組合框#
- 17. Excel打印組合單元格
- 18. 如何在C#中使用NPOI Excel添加單元格註釋?
- 19. 如何使用Windows服務C插入值到excel單元格#
- 20. 如何使用c#獲取Excel單元格填充模式?
- 21. 如何使用C#將Excel單元格內容右對齊?
- 22. cxGrid:如何將單元格轉換爲組合框對象
- 23. 如何在Excel中合併單元格?
- 24. 如何使用DataReader在excel單元格中編寫如果特定單元格是使用C#的「ReadOnly」
- 25. 使用VBA系統地爲一組複選框定義鏈接單元格(excel)
- 26. C#組合框使用
- 27. Excel:如何使用VBA檢查單元格是否爲空?
- 28. excel中的組合框鏈接單元格顯示
- 29. Excel組合框更改單元格中的數據
- 30. Excel宏組合框列表,從單元格傳遞值
VBA是什麼樣子的?通過記錄動作的VBA宏,然後通過.NET使用相同的方法,我在Excel Interop中的一些更復雜的東西中取得了成功。 –
當我轉到開發人員選項卡並單擊查看代碼時,我無法在我的參考表中看到任何VBA代碼。老實說,我不知道這張表是如何創建的。我上傳了我喜歡用C#重新創建的組合框的截圖。 http://imgur.com/xMCymTc – chhenning