前言

上图!
在这里插入图片描述

解决方法

直接上代码!!!!综合了各个大佬的自己修改了一下!可以直接规定在任意单元格进行设置。
核心代码方法块

#region Excel增加下拉框
        /// <summary>
        /// 增加下拉框选项
        /// </summary>
        /// <param name="sheet">生成的Excel表名称</param>
        /// <param name="firstrow">下拉框开始的行</param>
        /// <param name="lastrow">下拉框结束的行</param>
        /// <param name="firstcol">下拉框开始的列</param>
        /// <param name="lastcol">下拉框结束的列</param>
        /// <param name="vals">下拉选项的数组</param>
        public static void SetCellDropdownList(ISheet sheet, int firstrow, int lastrow, int firstcol, int lastcol, string[] vals)
        {

            //设置生成下拉框的开始和结束的行和列
            var cellRegions = new CellRangeAddressList(firstrow, lastrow, 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);
            }

            validation.CreateErrorBox("输入不合法!", "请输入或选择下拉选项的值!");
            validation.ShowPromptBox = true;
            sheet.AddValidationData(validation);
        }

        #endregion

方法调用

// 设置需要做成下拉框的行和列
SetCellDropdownList(excelSheet, 1, 1, 1, 1, new[] { "深圳户籍", "广东省内非深户", "广东省外户籍" });

最后

直接结束!不废话!希望对你有帮助!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部