C#之NPOI设置Excel下拉

 背景

        导出Excel其实是很常见的,但以前就是很简单将数据导出到Excel,做的最多的就是文字居中、栏位自适应、设置数据类型,其实很少会有设置Excel下拉这种,但用户的需求,而且这也算是Excel比较常用的,所以只能百度啦!

环境

  •   VS2019  .NET Core API
    • NPOI(2.5.3)

问题

        由于我们导出的Excel是.xlsx格式,但参考的文章是.xls的,于是继续百度,后来找到了一个导出.xlsx的,然后把这两个文章的的精华综合了一下,于是我的两个格式的都可以用的方法出炉了!

核心代码

        #region Excel辅助导出

        public static void SetCellDropdownList(ISheet sheet, int firstcol, int lastcol, string[] vals)
        {

            //設置生成下拉框的行和列
            var cellRegions = new CellRangeAddressList(1, 65535, firstcol, lastcol);
            IDataValidation validation = null;

            if (sheet.GetType().Name.Contains("XSSF")) // .xlsx
            {
                XSSFDataValidationHelper helper = new XSSFDataValidationHelper((XSSFSheet)sheet);//获得一个数据验证Helper  
                                                                                                 //IDataValidation
                validation = helper.CreateValidation(
                helper.CreateExplicitListConstraint(vals), cellRegions);//创建约束
            }
            else // HSSF .xls
            {
                //設置 下拉框內容
                DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(vals);
                validation = new HSSFDataValidation(cellRegions, constraint);


                /*綁定下拉框和作用區域,並設置錯誤提示信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值