前言
上图!
解决方法
直接上代码!!!!综合了各个大佬的自己修改了一下!可以直接规定在任意单元格进行设置。
核心代码方法块
#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 //IDataValidationvalidation = 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[] { "深圳户籍", "广东省内非深户", "广东省外户籍" });
最后
直接结束!不废话!希望对你有帮助!