C# 添加Excel表单控件(Form Controls)
在Excel中,添加的控件可以和单元格关联,我们可以操作控件来修改单元格的内容,在下面的文章中,将介绍在Excel中添加几种不同的表单控件的方法,包括:
- 添加文本框(Textbox)
- 单选按钮(Radio button)
- 复选框(Checkbox)
- 组合框(combo Box)
使用工具
PS:下载安装该组件后,注意在项目程序中添加引用Spire.Xls.dll(dll文件可在安装路径下的Bin文件夹中获取),如下图所示

代码示例
【示例1】插入Excel表单控件
步骤1:创建工作表
//实例化一个Workbook类实例,并获取第1个工作表
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[]; //设置表格行高、列宽
sheet.Range["A1:F1"].ColumnWidth = 15F;
sheet.Range["A1:B12"].RowHeight = 20F;
步骤 2:插入文本框
//插入文本框控件,指定文本框位置、大小以及文本对齐方式
sheet.Range["A1"].Text = "姓名:";
ITextBoxShape textBox = sheet.TextBoxes.AddTextBox(, , , );
textBox.Text = "John";
textBox.HAlignment = CommentHAlignType.Center;
textBox.VAlignment = CommentVAlignType.Center;
步骤 3:插入单选按钮
//插入单选按钮,指定单元格位置
sheet.Range["A3"].Text = "性别:";
IRadioButton radioButton = sheet.RadioButtons.Add(, , , );
radioButton.CheckState = CheckState.Checked;
radioButton.Text = "女";
radioButton = sheet.RadioButtons.Add(, , , );
radioButton.Text = "男";
步骤 4:插入复选框
//插入复选框并指定单元格位置
sheet.Range["A5"].Text = "所在行业:";
ICheckBox checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.CheckState = CheckState.Checked;
checkBox.Text = "教育";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "医疗";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "IT";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "零售";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "其他";
步骤 5:插入组合框
//插入组合框,并指定单元格位置、大小
sheet["A7"].Text = "年龄(段):";
sheet["A8"].Text = "<18";
sheet["A9"].Text = "18<Y<30";
sheet["A10"].Text = "30<Y<50";
IComboBoxShape comboBox = sheet.ComboBoxes.AddComboBox(, , , );
comboBox.ListFillRange = sheet["A8:A10"];
步骤 6:指定Combox的关联单元格
sheet["A12"].Text = "代表人群类别:";
comboBox.LinkedCell = sheet.Range["B12"];
comboBox.SelectedIndex = ;
步骤 7:保存文档
workbook.SaveToFile("AddFormControls.xlsx", ExcelVersion.Version2010);
运行该项目程序,生成文件(可在项目文件夹bin>Debug下查看文档)

全部代码:
using Spire.Xls;
using Spire.Xls.Core;
using System.Drawing; namespace FormControls_XLS
{
class Program
{
static void Main(string[] args)
{
//实例化一个Workbook类实例,并获取第1个工作表
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[]; //设置表格行高、列宽
sheet.Range["A1:F1"].ColumnWidth = 15F;
sheet.Range["A1:B12"].RowHeight = 20F; //插入文本框控件,指定文本框位置、大小以及文本对齐方式
sheet.Range["A1"].Text = "姓名:";
ITextBoxShape textBox = sheet.TextBoxes.AddTextBox(, , , );
textBox.Text = "John";
textBox.HAlignment = CommentHAlignType.Center;
textBox.VAlignment = CommentVAlignType.Center; //插入单选按钮,指定单元格位置
sheet.Range["A3"].Text = "性别:";
IRadioButton radioButton = sheet.RadioButtons.Add(, , , );
radioButton.CheckState = CheckState.Checked;
radioButton.Text = "女";
radioButton = sheet.RadioButtons.Add(, , , );
radioButton.Text = "男"; //插入复选框并指定单元格位置
sheet.Range["A5"].Text = "所在行业:";
ICheckBox checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.CheckState = CheckState.Checked;
checkBox.Text = "教育";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "医疗";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "IT";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "零售";
checkBox = sheet.CheckBoxes.AddCheckBox(, , , );
checkBox.Text = "其他"; //插入组合框,并指定单元格位置、大小
sheet["A7"].Text = "年龄(段):";
sheet["A8"].Text = "<18";
sheet["A9"].Text = "18<Y<30";
sheet["A10"].Text = "30<Y<50";
IComboBoxShape comboBox = sheet.ComboBoxes.AddComboBox(, , , );
comboBox.ListFillRange = sheet["A8:A10"]; //指定组合框的关联单元格
sheet["A12"].Text = "代表人群类别:";
comboBox.LinkedCell = sheet.Range["B12"];
comboBox.SelectedIndex = ; //保存文档
workbook.SaveToFile("AddFormControls.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("AddFormControls.xlsx");
}
}
}
【示例 2】 删除Excel表单控件
步骤 1:加载文档,并获取指定单元格
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx");
Worksheet sheet = workbook.Worksheets[];
步骤 2:删除组合框
for (int i = ; i < sheet.ComboBoxes.Count; i++)
{
sheet.ComboBoxes[i].Remove();
}
步骤 3:保存文档
workbook.SaveToFile("RemoveComboBoxes.xlsx", ExcelVersion.Version2010);
全部代码:
using Spire.Xls; namespace RemoveFormControl_XLS
{
class Program
{
static void Main(string[] args)
{
//创建Workbook实例,加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx"); //获取第一个工作表
Worksheet sheet = workbook.Worksheets[]; //删除工作表中所有的组合框
for (int i = ; i < sheet.ComboBoxes.Count; i++)
{
sheet.ComboBoxes[i].Remove();
} //保存并打开文档
workbook.SaveToFile("RemoveComboBoxes.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("RemoveComboBoxes.xlsx");
}
}
}
运行程序后,表格中相应的控件将被删除。
以上是本次关于C#操作Excel表单控件的全部内容,本文完。
(如需转载,请注明出处)
C# 添加Excel表单控件(Form Controls)的更多相关文章
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- Java 添加、删除Excel表单控件
通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...
- 我教女朋友学编程Html系列(6)—Html常用表单控件
做过网页的人都知道,html表单控件十分重要.基本上我们注册会员.登录用户,都需要填写用户名.密码,那些框框都是表单控件. 本来今天就想写一些常用的html表单控件,于是开始搜资料,找到了一个网页,作 ...
- 如何给动态添加的form表单控件添加表单验证
最近使用jQuery Validate做表单验证很方便,api地址为http://www.runoob.com/jquery/jquery-plugin-validate.html 但是在使用的时候也 ...
- Excel中的表单控件和active控件
EXCEL中有两种控件:表单控件和active控件 表单控件是excel5和excel95开始使用的,从excel97开始,active控件开始出现 关于表单控件和active控件的区别和使用范围,网 ...
- Flutter Form表单控件超全总结
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Form.FormField.TextFormField是 ...
- 前端 HTML body标签相关内容 常用标签 表单标签 form 表单控件分类
表单控件分类 input标签: input标签 type属性的text,password,button按钮,submit按钮 input标签placeholder属性 标签上显示内容 input标签 ...
- 了解HTML表单之13个表单控件
目录 传统控件 button select option optgroup textarea fieldset legend label 新增控件 datalist keygen output pro ...
- Bootstrap系列 -- 18. 表单控件大小
前面看到的表单控件都正常的大小.可以通过设置控件的height,line-height,padding和font-size等属性来实现控件的高度设置.不过Bootstrap框架还提供了两个不同的类名, ...
随机推荐
- C# 中Datatime类用法总结
C# 中Datatime类用法总结 收集了一些记录下来,这些有的是从网上找的,有些是自己使用到的: DateTime dt = DateTime.Now; dt.ToString();//2005-1 ...
- post 和 get 的区别,直指本质
在我们初入java编程之路的时候,面试往往会有一个面试题:get和post的区别是什么?那么你真的知道他们的区别吗?接下来抽丝剥茧,让我们看看get和post到底什么东西,首先从本质的角度看get和p ...
- mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
转自:http://www.169it.com/article/5994930453423417575.html 为了测试sql语句的效率,有时候要不用缓存来查询. 使用 SELECT SQL_NO_ ...
- java项目中通过添加filter过滤器解决ajax跨域问题
1.在web.xml添加filter <filter> <filter-name>contextfilter</filter-name> <filter-cl ...
- java的Calendar,获取月份少一月的问题及其它注意事项
java的Calendar,获取月份少一月的问题及其它注意事项: import java.util.*; public class DateClass{ public static void main ...
- Java公开课-04.异常
一,异常的概念 程序在运行时,发生了我们没有预测的结果,它阻止了程序按照我们预期效果执行 二,怎么保证我们的程序在发生异常以后 ,代码继续执行? 异常处理机制 在程序发生异常以后,还能按照我们事先设定 ...
- mysqldump详解
Ⅰ.mysqldump的简单使用与注意点 1.1 基本参数 只备份innodb,用不了几个参数,记住下面几个即可,其他的没什么卵用 -A 备份所有的database -B 备份哪几个数据库 -R 备份 ...
- HttpMessageConverter 专题
配置HttpMessageConverterHttpMessageConverter是对http的request和response进行自动转换配置HttpMessageConverter可重载下面两个 ...
- Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息
[Please make sure to select the branch corresponding to the version of Thymeleaf you are using] Stat ...
- websocket(一)--握手
最近在琢磨怎么实现服务端的消息推送,因为以前都是通过客户端请求来获取信息的,如果需要实时信息就得轮询,比如通过ajax不停的请求. websocket相当于对HTTP协议进行了升级,客户端和服务端通过 ...