我在C#中使用Excel COM对象,并希望动态地将复选框插入Excel工作表,并根据条件选中或取消选中它。
OR
如何以编程方式在Excel工作表中选中现有复选框。 我环顾四周,没有找到任何解决方案。
答案 0 :(得分:3)
您始终可以在MS Excel中录制宏,它可以让您很好地了解Excel对象需要做些什么才能实现。例如,在为您的问题录制宏时,它出现了以下代码:
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=65.25, Top:=24, Width:=108, Height:=21). _
Select
我希望从这里你可以看到在活动工作表上插入复选框需要做些什么。
以下是更详细的说明(Visual Studio 2010和C#): 1.启动Visual Studio并创建新项目(Windows应用程序或控制台应用程序) 2.右键单击References并选择“Add Reference” 3.选择COM引用并添加Microsoft Excel xx.x对象库(在我的情况下,xx.x是14.0,即Excel 2010)。 4.代码中的某处(某些功能如Main或某些按钮单击)添加以下代码:
// Start excel
Microsoft.Office.Interop.Excel.Application oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = true;
// Get a sheet
Microsoft.Office.Interop.Excel._Workbook oWB = (Microsoft.Office.Interop.Excel._Workbook)oXL.Workbooks.Add(System.Reflection.Missing.Value);
Microsoft.Office.Interop.Excel._Worksheet oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;
// Get ole objects and add new one
Microsoft.Office.Interop.Excel.OLEObjects objs = oSheet.OLEObjects();
// Here is the method that is posted in the answer
Microsoft.Office.Interop.Excel.OLEObject obj = objs.Add("Forms.CheckBox.1",
System.Reflection.Missing.Value,
System.Reflection.Missing.Value,
false,
false,
System.Reflection.Missing.Value,
System.Reflection.Missing.Value,
65.25,
24,
108,
21);
// Here, you are making it checked. obj.Object is dynamic, so you will not get help from visual studio, but you know what properties CheckBox can have, right?
obj.Object.Value = true;
我希望这会有所帮助。