关于使用NPOI生成Excel下拉项的两种使用方式(XSSF、HSSF)

XSSF:

  

复制代码
static void test() {
            IWorkbook workbook = new XSSFWorkbook();
            ISheet sheet = workbook.CreateSheet();
            var sheetIndex = 0;
            var values = new string[] { };
            var helper = new XSSFDataValidationHelper((XSSFSheet)sheet);
            var typesRegions = new CellRangeAddressList(1, 65535, 0, 0);
            if (values.Length > 50)
            {
                var sheetTmpName = "数据源表";
                sheetIndex++;
                ISheet sheetTmp = workbook.CreateSheet(sheetTmpName);
                //隐藏
                workbook.SetSheetHidden(sheetIndex, SheetState.Hidden);
                int index = 0;
                foreach (var item in values)
                {
                    sheetTmp.CreateRow(index).CreateCell(0).SetCellValue(item);
                    index++;
                }
                //创建的下拉项的区域:
                var rangeName = sheetTmpName + "Range";
                IName range = workbook.CreateName();
                range.RefersToFormula = sheetTmpName + "!$A$1:$A$" + index;
                range.NameName = rangeName;

                #region 创建约束
                var typesValidation = helper.CreateValidation(helper.CreateFormulaListConstraint(rangeName), typesRegions);
                typesValidation.CreateErrorBox("输入不合法", "请输入或选择下拉列表中的值。");
                #endregion
typesValidation.ShowPromptBox
= true; sheet.AddValidationData(typesValidation); } else { var typesValidation = helper.CreateValidation(helper.CreateExplicitListConstraint(values), typesRegions); typesValidation.CreateErrorBox("输入不合法", "请输入下拉列表中的值!"); typesValidation.ShowErrorBox = true; sheet.AddValidationData(typesValidation); } }
复制代码

 

HSSF:

只需要修改【创建约束】的那几行代码即可

                #region 创建约束
                DVConstraint constraint = DVConstraint.CreateFormulaListConstraint(rangeName);
                HSSFDataValidation typesValidation = new HSSFDataValidation(typesRegions, constraint); 
                #endregion

 

posted @   打工人小余  阅读(1034)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
历史上的今天:
2019-05-11 记一次邮件推送的坑,c#基于smtp使用腾讯企业邮箱发送邮件总是失败的原因
点击右上角即可分享
微信分享提示