Poi(一)- excel添加下拉候选框(上)

写这个博客的目的主要是记录一下工作中遇到的问题,方便以后查阅,毕竟记忆力越来越不好了

1 excel是怎么添加下拉候选框的

在这里插入图片描述
选中某一个单元格,徐娜则数据验证->验证条件,选择序列,在来源处输入下拉框数据,以英文逗号分隔

2 java代码怎么添加下拉候选框

2.1 hssf

 public static void sheetConstraintHSSF(final Sheet sheet, final int firstRow, final int lastRow,
            final int firstCol,
            final int lastCol,
            final List<String> strings) {
        //  生成下拉列表 只对(firstRow,lastRow, firstCol, lastCol)单元格有效
        final CellRangeAddressList cellRangeAddressList =
                new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
        //  生成下拉框内容
        final DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings.toArray(new String[1]));
        final HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
        //  对sheet页生效
        sheet.addValidationData(dataValidation);
    }

说说这几个参数:

  • 1 sheet页,要添加下拉框的sheet
  • 2 firstRow,从多少行开始添加
  • 3 lastRow,到多少行截止
  • 4 firstCol, lastCol,在哪一列上添加。
  • 5 strings, 下拉列表的数据,如图中的辽宁,大连等

2.2 xssf

public static void sheetConstraintXSSF(final Sheet sheet, final int firstRow, final int lastRow,
            final int firstCol, final int lastCol, final List<String> strings) {
        //   生成下拉列表 只对(firstRow,lastRow, firstCol, lastCol)单元格有效
        final CellRangeAddressList cellRangeAddressList =
                new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
        final XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet);
        final XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper
                .createExplicitListConstraint(strings.toArray(new String[1]));
        final XSSFDataValidation validation =
                (XSSFDataValidation) dvHelper.createValidation(dvConstraint, cellRangeAddressList);
        validation.setShowErrorBox(true);
        sheet.addValidationData(validation);
    }

参数同上2.1

2.3 存在的问题

这种给excel添加下拉框的方式,下拉数据不能太多,因为excel的数据验证序列部分有长度限制

3 一个完整的例子

完整的代码在github上,dropdown包
https://github.com/ws378894183/hope/tree/master/easypoi-validation

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值