134  
查询码:00000419
用NPOI导出Excel,生成下拉列表、以及下拉联动列表
来源:https://www.cnblogs.com/donkeysmall/p/7887363.html
作者: 夏英杰 于 2019年12月28日 发布在分类 / FM组 / FM其他 下,并于 2019年12月28日 编辑
NPOI Excel 下拉 下拉联动 联动

用NPOI导出Excel,生成下拉列表、以及下拉联动列表(第1篇/共3篇)

最近帅帅的小毛驴遇到一个很奇葩的需求:

导出Excel报表,而且还要带下拉框,更奇葩的是,下拉框还是联动的。

小毛驴一天比较忙,所以这等小事自然由我来为她分忧了。经历了两天,做了几种解决方案,最后完美把这个问题解决了。

小毛驴本应该会比较开心的,结果刚好解决那天我把她惹生气了(表情:尬笑),老婆大人对不起,请原谅我吧~ (2017.11.24)


好了,言归正传,接下来说一下这几个解决方案,各有各的优缺点。

首先声明,本系列的文章比较长,一共分三篇,本文是第一篇;

请各位看官耐心看,我会向大家详细分享 “渔” 技术,谢谢~


解决方案一:

用 NPOI 的 DVConstraint.CreateExplicitListConstraint 方法:

老规矩,上马!哦不,上码:

1 /// <summary> 2 /// 生成excel下拉列表demo 3 /// </summary> 4 public void CreateCellDropDownList() 5 { 6 HSSFWorkbook workbook = new HSSFWorkbook(); // 从流内容创建Workbook对象 7 ISheet sheet = workbook.CreateSheet( " sheetOne "); // 创建工作表 8 9 // 设置生成下拉框的行和列 10 CellRangeAddressList cellRegions = new CellRangeAddressList( 0, 65535, 0, 1 ); 11 12 // 设置 下拉框内容 13 DVConstraint constraint = DVConstraint.CreateExplicitListConstraint( 14 new string[] { " 选项一 ", " 选项二 ", " 选项三 " }); 15 16 // 绑定下拉框和作用区域,并设置错误提示信息 17 HSSFDataValidation dataValidate = new HSSFDataValidation(cellRegions, constraint); 18 dataValidate.CreateErrorBox( " 输入不合法 ", " 请输入下拉列表中的值! " ); 19 dataValidate.ShowPromptBox = true ; 20 21 sheet.AddValidationData(dataValidate); 22 23 // 导出到文件 24 string filePath = Server.MapPath( " ~/ExportFiles/CellDropDownList.xls " ); 25 FileStream fs = new FileStream(filePath, FileMode.Create); 26 workbook.Write(fs); 27 fs.Close(); 28 }


这种方案的优缺点:

优点:设置下拉选项比较容易,思维没有很复杂;

缺点:当下拉选项的长度超过255个字符后,就会报错,从而生成不了。


本文相关内容导航:

1.NPOI生成不受下拉选项长度255字符限制的导出方式,以及N级下拉联动;

2.在Excel中制作下拉列表,以及下拉联动列表的方法和原理。



 推荐知识

 历史版本

修改日期 修改人 备注
2019-12-28 17:41:41[当前版本] 夏英杰 创建版本1.1.1.0

  目录
    知识分享平台 -V 4.8.7 -wcp