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

时间:2024-02-24 18:28:13

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

    导出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中制作下拉列表,以及下拉联动列表的方法和原理。

 

帅帅的小毛驴

2017-11-24

 

下面给大家推荐两个小福利:

      1. 支付宝领红包,每天都能领取最高99元。领取的红包在支付时可以抵扣现金!
      2. 一款覆盖淘宝、天猫全场商品95%的内部优惠券搜索神器。 
        扫描二维码下载APP后,输入激活码:code888,即可自用省钱 + 分享赚钱!最高帮您节省90%的购物资金!
      3.