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 ...
随机推荐
- java基础总结(1)--深入理解基本数据类型
深入理解java数据类型 java是一种强类型语言,这就意味着必须为每一个声明变量声明一种类型.在java中,一共有8种数据类型,其中4种整型,2种浮点类型,1种字符类型和一种表示真值的boolean ...
- 为什么坚果云Markdown值得使用?
值得使用说明是被认为有价值的,值得有两种意思的解释:1.有价值,有意义:2.价钱合适,合算:那么坚果云Markdown是否是人们值得使用的呢?下面就来看看坚果云Markdown到底是什么?为什么值得使 ...
- 是谁,在敲打我窗-CSS雨滴动画效果
1.扯闲篇 是谁在敲打我窗 是谁在撩动琴弦 那一段被遗忘的时光 渐渐地回升出我心坎 是谁在敲打我窗 是谁在撩动琴弦 记忆中那欢乐的情景 慢慢地浮现在我的脑海 那缓缓飘落的小雨 不停地打在我 ...
- Integer的比较==和String的比较==总结
一.序言 今天发现了一个很有趣的问题,在群里和朋友们讨论的也比较激烈,我现在给大家阐述一下问题. 二.发现问题 上代码... package com.hzwealth.test.question; p ...
- CentOS 7 Cobbler 自动化安装系统
在上一篇Cobbler 安装中,配置好了Cobbler,下面来配置自动化安装 配置cobbler-DHCP # 修改settings中参数,由cobbler控制dhcp [root@cobbler ~ ...
- Solr搜索引擎【索引管理】
一.索引存储 当文档提交到索引之后,directory目录组件会将它们写入到持久化存储器.Solr的目录组件具有以下重要特点: 1.隐藏持久存储的读写细节,例如,将文档写入到磁盘或通过JDBC在数据库 ...
- fsockopen用feof读取http响应内容的一些问题
在前面三个例子中,都有这么一段代码: while (!feof($fp)) { // 读取文件/数据 //$content .= fgets($fp, 128); //$line = fread($f ...
- 在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程
由于最近要在OpenCV3中使用SIFT和SURF特征提取,而自从OpenCV2升级到OpenCV3版本后,SIFT.SURF等这些算法都被移出opencv默认项目库,而被放到叫opencv_cont ...
- 《吊打面试官》系列-HashMap
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 上已经收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Sta ...
- mysql-常用组件之定时器
定时器主要用于定时的执行一次或者循环执行一条sql,在实际场景上,例如,定期清理数据表,定期导出日志文件等等场景.本次公司晚上维护系统,晚上需要定期挂维护页,用到了定时器,这里简单总结一下. 启用定时 ...