NPOI 设置下拉列表
HSSFWorkbook workbook = new HSSFWorkbook();//创建工作簿
ISheet sheet = workbook.CreateSheet();//创建sheet页
var namelist = new string[] { "张三", "李四", "王五" };//创建一个数组作为数据源
var cellRegions = new CellRangeAddressList(5, 65535, 0, 0);//设置生成下拉框的行和列,从第6行到第65536行,从第0列到第0列
//Excel中允许输入的序列来源长度最大为255个字符,也就是说当下拉项的总字符串长度超过255是将会出错。所以我将下拉列表分为简易列表和引用列表(设置下拉列表的数据源是某一个sheet页)
1、简易列表
DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(namelist);//将下拉项作为一个数组传给CreateExplicitListConstraint作为参数创建一个约束
HSSFDataValidation dataValidate = new HSSFDataValidation(cellRegions, constraint);//绑定下拉框和作用区域,并设置错误提示信息
dataValidate.CreateErrorBox("输入不合法", "请输入下拉列表中的值。");
dataValidate.ShowPromptBox = true;//显示提示框
sheet.AddValidationData(dataValidate);//添加下拉列表
2、sheet列表
public void CreateDropdownlist(int firstRow, int col, string name, string[] strarray)
{
ISheet sheet = WorkBook.CreateSheet(name);//先创建一个Sheet专门用于存储下拉项的值
WorkBook.SetSheetHidden(WorkBook.GetSheetIndex(name), SheetState.Hidden);//隐藏Sheet
int index = 0;
foreach (var str in strarray)//将下拉列表中的数据循环赋给sheet页
{
sheet.CreateRow(index++).CreateCell(0).SetCellValue(str);
}
定义一个名称,指向刚才创建的下拉项的区域:
var rangeName = name + "Range";
IName range = WorkBook.CreateName();
range.RefersToFormula = name + "!$A$1:$A$" + (index == 0 ? 1 : index);
range.NameName = rangeName;
//-----------------分割线以上是用来创建一个sheet页赋值,然后将sheet页中的内容定义成一个名称,后面用来当作数组传入方法的过程-----------------------
CellRangeAddressList cellRegions = new CellRangeAddressList(firstRow, 65535, col, col);//划一块地,这块地我要留着种黄瓜
DVConstraint constraint = DVConstraint.CreateFormulaListConstraint(rangeName);//弄来了二斤瓜苗(补充一下:这里如果传进来的是一堆瓜苗就直接用了,如果是传回来的是一个字符串,比如说“翠花家”,我就去翠花找黄瓜去了)
HSSFDataValidation dataValidate = new HSSFDataValidation(cellRegions , constraint);//把瓜苗种地里
dataValidate.CreateErrorBox("输入不合法", "请输入或选择下拉列表中的值。");//提示你挖错了,我这是黄瓜地,茄子在隔壁翠花的地里
dataValidate.ShowPromptBox = true;
WorkBook.GetSheetAt(0).AddValidationData(dataValidate);//雷猴,终于种完地了,回家睡觉
}
NPOI 设置下拉列表的更多相关文章
- NPOI设置单元格背景色
NPOI设置单元格背景色在网上有好多例子都是设置为NPOI内置的颜色值 但是想用rgb值来设置背景色,即:通过HSSFPalette类获取颜色值时会抛出异常:Could not Find free c ...
- npoi设置数据有效性
npoi设置数据有效性 public void SetDataValidate(ISheet sheet, int firstCol, int lastCol) { CellRangeAddressL ...
- layui利用jQuery设置下拉列表的值
今天在利用jQuery动态设置下拉列表的值的时候确怎么也赋值不上去,其中用到了layui框架,源代码如下: $.post(contextPath+'/courseLibrary/getCourseBa ...
- 分别在javascript和JSP中动态设置下拉列表默认值
一.JavaScript中动态设置select标签中<option>选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 ...
- NPOI设置Excel保护
有时,我们可能需要某些单元格只读,如在做模板时,模板中的数据是不能随意让别人改的.在Excel中,可以通过“审阅->保护工作表”来完成,如下图: 那么,在NPOI中有没有办法通过编码的方式达到 ...
- android怎样自定义设置下拉列表样式
图样: 实现方式: 1.水平布局一个TextView和一个ImageView(小黑箭头) 2.实现点击ImageView的单击事件,弹出PopupWindow 3.PopupWindow中实现下拉列表 ...
- NPOI设置单元格格式
转自:http://www.cr173.com/html/18143_2.html //创建一个常用的xls文件 private void button3_Click(object sender, E ...
- NPOI设置Excel单元格字体、边框、对齐、背景色
代码: ICellStyle cellStyle = workbook.CreateCellStyle(); cellStyle.BorderBottom = BorderStyle.Thin; ce ...
- NPOI 设置导出的excel内容样式
导出excel时,有时要根据需要加上一些样式,以上几种样式是我在项目中用到的 一.给单元格加背景色只需两步:一是创建单元格背景景色对象:二是给单元格绑定样式 //创建单元格背景颜色对象 HSSFPal ...
随机推荐
- 2019-9-20:渗透测试,基础学习,笔记,metasploit的基础使用
使用kali下metasploit生成木马,控制windows系统 kali基于debin的数字取证系统,上面集成了很多渗透测试工具,前身为bt r3(BrackTrack) Metasploit,是 ...
- cenos7搭建gitlab
git.github和gitlab的区别 git:是一种版本控制系统,是一个命令,是一种工具 gitlib:是基于实现功能的开发库 github:是一个基于git实现的在线代码仓库软件 gitlib可 ...
- 记一次uboot中gunzip解压速度慢的问题排查
背景 在项目中需要用到解压功能,之前还记录了下,将uboot解压代码移植到另外的bootloader中时,碰到的效率问题.最终查明是cache的配置导致的. https://www.cnblogs.c ...
- [需求设计]从一个小需求感受Redis的独特魅力
分享一个简单的小需求应该怎么设计实现以及有关Redis的使用 Redis在实际应用中使用的非常广泛,本篇文章就从一个简单的需求说起,为你讲述一个需求是如何从头到尾开始做的,又是如何一步步完善的.之前写 ...
- 运维常用 MySQL 命令
目录 设置用户密码 方法一 方法二 丢失root密码找回 添加用户 设置用户密码 方法一 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass ...
- X86架构CPU常识(主频,外频,FSB,cpu位和字长,倍频系数,缓存,CPU扩展指令集,CPU内核和I/O工作电压,制造工艺,指令集,超流水线与超标量)
1.主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度. CPU的主频=外频×倍频系数.很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差. ...
- polygon()函数
polygon():draw the polygons where vertices are given in x and y. polygon(x,y=NULL,density=NULL,angle ...
- JSON.parse() 报错和一些解决方法
js 报错 Unexpected end of JSON input,Unexpected token u in JSON at position 0 JSON 通常用于与服务端交换数据. 在接收服务 ...
- 小白学 Python 爬虫(14):urllib 基础使用(四)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 带着canvas去流浪系列之四 绘制散点图
[摘要] 用原生canvasAPI实现百度Echarts图表 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 任务说明 使用原生canvasAPI ...