我在 C# 中使用 Excel COM 对象,并希望将复选框动态插入 Excel 工作表,并根据条件使其选中或取消选中。
或者
如何以编程方式将 Excel 工作表中的现有复选框标记为已选中。我环顾四周,没有找到任何解决方案。
我在 C# 中使用 Excel COM 对象,并希望将复选框动态插入 Excel 工作表,并根据条件使其选中或取消选中。
或者
如何以编程方式将 Excel 工作表中的现有复选框标记为已选中。我环顾四周,没有找到任何解决方案。
您始终可以在 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. 右键单击引用并选择“添加引用” 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;
我希望这有帮助。