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 ...
随机推荐
- Gemini.Workflow 双子工作流高级教程:数据库-设计文档
数据库设计文档 数据库名:Workflow_New 序号 表名 说明 1 WF_Activity wf_Activity 2 WF_ActivityInstance wf_ActivityInstan ...
- javascript实用Date工具
时间字符串和年月日数据之间的自由转换工具:2018年更新版 上代码: /** * @Desc: 时间处理工具 * @Author: 拿饭盒当烟灰缸 * @Date: 2018-02-27 15:42: ...
- pom父工程dependencyManagement中的jar包在子工程中不写版本号无法引入的问题
1.遇到的问题: 本人用的idea,然后在导入别人的项目的时候,pom文件中没有报错了,但是在maven栏目中jar包却一直报红,是因为我没写版本的原因吗?不对呀,我的父工程下已经写了springb ...
- Python一秒搭建ftp服务器,帮助你在局域网共享文件【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- DRF Django REST framework 之 解析器(二)
引入 Django Rest framework帮助我们实现了处理application/json协议请求的数据,如果不使用DRF,直接从 request.body 里面拿到原始的客户端请求的字节数据 ...
- python 拷贝文件夹下的文件 到 另一个文件夹
import os,shutil def copy_search_file(srcDir, desDir): ls = os.listdir(srcDir) for line in ls: fileP ...
- Win7 系统所有应用颜色调整
不知道按到哪个快捷键了,发现windows7系统桌面,浏览器,PDF阅读器和Eclipse的北京和菜单都编程淡黄色,下面是解决的过程. 方法一:在win7桌面右击 -> 个性化 -> 窗口 ...
- Chrome快捷键吐血整理
Chrom是平时开发过程中最常用到的浏览器,使用快捷键操作Chrome能提高我们的使用效率,而且可以脱离鼠标进行操作.本篇博客就对平时我们常用的Chrome快捷键做一个整理总结.大家拿走不谢,哈哈~~ ...
- Java修炼——IO流的概念以及其分类
IO流的基本概念: 流的原理: 1) 在 Java 程序中,对于数据的输入/输出操作以"流" (stream) 方式进行: 2) J2SDK 提供了各种各样的"流&quo ...
- 核心系统命令实战 第一章Linux命令行简介
第一章Linux命令行简介 1.1 Linux命令行概述 1.1.1 Linux 命令行的开启和退出 开启:登陆账号密码进入系统 退出:exit/logout 快捷键:Ctrl+d 1.1.2 Li ...