背景
导出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);
/*綁定下拉框和作用區域,並設置錯誤提示信息