在Excel电子表格中以编程方式在c#中创buildcheckbox

作为我正在开发的一个项目的一部分,我需要能够在Excel电子表格中创buildcheckbox,任何人都可以提供一个简单的例子,或者直接给我一个有用的参考? 我正在使用卓越的互操作性。

提前致谢。

有两种控件可以放在工作表上,Control Toolbox中的ActiveX控件和Forms(或Drawing)工具栏中的Forms控件。

一般来说,这两种types的控制类似,它们的工作方式是一样的。 也就是说,“绘图”工具栏中的文本框是一个可以input文本的控件。 这与ActiveX文本框基本相同。 任何一种types的checkbox都用于select或取消select一个选项。

显然,使用这个或那个的决定将基于它们的差异,而不是它们的相似性。 无论如何,主要的差异是事件和格式。 ActiveX控件为电子表格devise人员提供了更多的灵活性,当显示或响应控件事件时。 查看ActiveX控件的属性,可以certificate用户可以使用它们比使用Forms控件更有效。 此外,Forrms控件还有一个基本事件,即click事件,通过向控件分配macros来访问它。 另一方面,ActiveX控件有很多事件。 ActiveXcombobox,例如,有15个事件。

所有的灵活性都是有代价的(你知道会这样)。 ActiveX控件带来了更多的开销,并有一个越野车的历史。

衡量好与坏,我总是使用窗体控件,除非我有一个特定的原因使用ActiveX。 表单控件精简且易于使用。 但是,如果我需要一个combobox来显示特定的字体,我别无select,只能使用ActiveX控件。 同样,如果我需要避免在文本框中的某些字符,我将需要从表单文本框中不可用的KeyPress事件。 所以我的build议和我的做法是使用Forms控件,除非我需要只有ActiveX控件提供的function。

表单checkbox添加代码

ActiveSheet.CheckBoxes.Add 87, 18, 72, 17.25 

ActiveXcheckbox添加代码

  ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=69.75, Top:=59.25, Width:=117.75, Height _ :=14.25) 

这个代码是VBA,但可以很容易地从.net通过互操作调用

这里是我用于C#

 OLEObjects objs = worksheet.OLEObjects(); 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, cell.Left + 1, cell.Top + 1, cell.Width - 2, cell.Height - 2); obj.Object.Caption = ""; if (text == "TRUE") { obj.Object.value = true; } else { obj.Object.value = false; } 

我使用了cell.Left + 1, cell.Top + 1, cell.Width - 2, cell.Height - 2来保持单元格四边的边界

有趣的问题。 我还没有尝试过,但我认为你要么将其添加为Worksheet.Shape项目,要么将其添加为OLEObject。 以下示例显示如何从工作表中读取现有checkbox。 这可能是一个很好的起点:

http://forums.asp.net/p/1244356/3293168.aspx