用NPOI操作EXCEL--生成下拉列表
来源:互联网 发布:手机淘宝推广软件 编辑:程序博客网 时间:2024/05/17 22:45
用NPOI操作EXCEL--生成下拉列表
设置步骤为:
(1)选定一个要生成下拉列表的区域;
(2)设置数据有效性为序列,并在来源中填充可选下拉的值,用“,”隔开(如图)。
对应的效果为:
同样,利用NPOI代码也可以实现上面的效果:
下面对代码作一下简要说明:(1)选定一个要生成下拉列表的区域;
(2)设置数据有效性为序列,并在来源中填充可选下拉的值,用“,”隔开(如图)。
对应的效果为:
同样,利用NPOI代码也可以实现上面的效果:
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);
DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(new string[] { "itemA", "itemB", "itemC" });
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);
DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(new string[] { "itemA", "itemB", "itemC" });
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);
先设置一个需要提供下拉的区域,关于CellRangeAddressList构造函数参数的说明请参见上一节:
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);
然后将下拉项作为一个数组传给CreateExplicitListConstraint作为参数创建一个约束,根据要控制的区域和约束创建数据有效性就可以了。但是这样会有一个问题:Excel中允许输入的序列来源长度最大为255个字符,也就是说当下拉项的总字符串长度超过255是将会出错。那么如果下拉项很多的情况下应该怎么处理呢?答案是通过引用的方式。步骤如下:
先创建一个Sheet专门用于存储下拉项的值,并将各下拉项的值写入其中:
HSSFSheet sheet2 = hssfworkbook.CreateSheet("ShtDictionary");
sheet2.CreateRow(0).CreateCell(0).SetCellValue("itemA");
sheet2.CreateRow(1).CreateCell(0).SetCellValue("itemB");
sheet2.CreateRow(2).CreateCell(0).SetCellValue("itemC");
然后定义一个名称,指向刚才创建的下拉项的区域:sheet2.CreateRow(0).CreateCell(0).SetCellValue("itemA");
sheet2.CreateRow(1).CreateCell(0).SetCellValue("itemB");
sheet2.CreateRow(2).CreateCell(0).SetCellValue("itemC");
HSSFName range = hssfworkbook.CreateName();
range.Reference = "ShtDictionary!$A1:$A3";
range.NameName = "dicRange";
最后,设置数据约束时指向这个名称而不是字符数组:range.Reference = "ShtDictionary!$A1:$A3";
range.NameName = "dicRange";
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);
DVConstraint constraint = DVConstraint.CreateFormulaListConstraint("dicRange");
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);
CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);
DVConstraint constraint = DVConstraint.CreateFormulaListConstraint("dicRange");
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);
0 0
- 用NPOI操作EXCEL--生成下拉列表
- 用NPOI操作EXCEL--生成下拉列表
- 用NPOI操作EXCEL--画线
- 用NPOI操作Excel
- 使用NPOI生成Excel级联列表
- 使用NPOI生成Excel级联列表
- 2.4.5 用NPOI操作EXCEL--插入图片
- 用NPOI操作EXCEL--画矩形
- 用NPOI操作EXCEL--画圆形
- 用NPOI操作EXCEL-锁定列CreateFreezePane()
- 用NPOI操作EXCEL-锁定列CreateFreezePane()
- 用NPOI、C#操作Excel表格生成班级成绩单
- NPOI生成Excel
- NPOI生成Excel
- NPOI设置Excel下拉选项
- 用NPOI操作EXCEL--画线(HSSFClientAnchor和HSSFSimpleShape 使用)
- POI java excel 生成下拉列表
- NPOI 进行EXCEL操作
- nodejs 事件循环
- 考研日记---9、07---关于别的学校
- [ZOJ 3817 Chinese Knot] 字符串hash+DP
- 手机安全卫士_spalsh页面01
- 20140909 在ubuntu上使用h3c客户端使电脑可以上网(我是华南理工大学广州学院的)
- 用NPOI操作EXCEL--生成下拉列表
- 运行SharePoint配置向导出错的一个解决办法
- JS中一切正确却显示object is not a function
- Android程序员读过andrid API的最好证明(2) 原创 KankanStyle
- 考研日记----9.08-----中秋快乐
- Excel下拉项生成设置
- SQL 服务器不能访问
- Leetcode: Maximum Subarray
- HDU1789 Doing Homework again