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