Excel下拉项生成设置
来源:互联网 发布:手机淘宝推广软件 编辑:程序博客网 时间:2024/05/27 03:27
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);
执行这段代码,生成的Excel效果如下:CellRangeAddressList regions = new CellRangeAddressList(0, 65535, 0, 0);
DVConstraint constraint = DVConstraint.CreateFormulaListConstraint("dicRange");
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);
在名称管理器中会发现有一个名为"dicRange"的名称,指向"ShtDictionary!$A1:$A3"的下拉项区域:
在数据有效性中会发现来源变成了"=dicRange",指向上面定义的名称。而不是以前的"itemA,itemB,itemC":
0 0
- Excel下拉项生成设置
- Excel中设置下拉列表项
- poi生成excel下拉菜单
- Excel 如何 设置 下拉列表 下拉框
- EXCEL下拉列表选项设置
- EXCEL表格下拉框设置
- Excel单元格下拉框设置
- excel设置下拉列表选项
- NPOI设置Excel下拉选项
- POI java excel 生成下拉列表
- EXCEL中单元格下拉框的设置
- EXCEL下拉菜单的设置方法
- excel表格中如何设置下拉菜单
- Excel设置下拉选项的方法
- 如何在EXCel中设置下拉选项
- 如何在Excel中设置下拉选项
- 使用EXCEL设置“下拉菜单”选项功能
- Excel冻结窗口及设置下拉菜单
- 用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
- 【VC】typedef struct 和 struct 的区别
- winDbg+VirtualBox双机调试
- 揭秘优化php代码42种方法_PHP教程
- Nginx 禁止IP访问 (实践过)
- 10-2014.9.9