用NPOI导出Excel,生成下拉列表、以及下拉联动列表(第1篇/共3篇)
最近帅帅遇到一个很奇葩的需求:
导出Excel报表,而且还要带下拉框,更奇葩的是,下拉框还是联动的。
经历了两天,做了几种解决方案,最后完美把这个问题解决了。
好了,言归正传,接下来说一下这几个解决方案,各有各的优缺点。
首先声明,本系列的文章比较长,一共分三篇,本文是第一篇;
请各位看官耐心看,我会向大家详细分享 “渔” 技术,谢谢~
解决方案一:
用 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
下面给大家推荐两个小福利:
- 支付宝领红包,每天都能领取,最高99元。领取的红包在支付时可以抵扣现金!
- 一款覆盖淘宝、天猫全场商品95%的内部优惠券搜索神器。
扫描二维码下载APP后,输入激活码:code888,即可自用省钱 + 分享赚钱!最高帮您节省90%的购物资金!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构