poi设置单元格下拉下表

2022-03-28 19:31:20 浏览数 (2)

poi是读写excel最常用的一个开源中间件,实际使用中我们可能会遇到这样的需求:限制某列单元格只能输入特定的内容,这就是excel的下拉列表特性,以下是wps中excel的一个截图:

从上图可以看出,维护下拉选项有两种方式:

1.手动添加下拉选项

2.从单元格选择下拉选项

第一种方式的缺点就是单元格字节数不能超过255个字,笔者在实际使用中输入的内容远超过这个数,所以笔者选择的是第二种方案,笔者新建了一个sheet,在这个sheet中某列输入实际需要的下拉列表内容(可以动态插入),比如省市,然后隐藏这个sheet即可,这样用户在使用过程中就可以根据这个模板文件输入限制的内容。下面就贴实际使用过程中分代码:

代码语言:javascript复制
            String strFormula = "sheet名字!$A$1:$A$100";
            XSSFDataValidationConstraint constraint = new XSSFDataValidationConstraint(ValidationType.LIST,strFormula);
            // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列
            CellRangeAddressList regions = new CellRangeAddressList(0,800, 12, 12);
            // 数据有效性对象
            DataValidationHelper help = new XSSFDataValidationHelper((XSSFSheet)sheet);
            DataValidation validation = help.createValidation(constraint, regions);
            sheet.addValidationData(validation);

上面的代码就可以实现exel的下拉列表选择功能,而且不限制下拉列表长度!!

0 人点赞