Java 设置Excel数据有效性

1、整体思路

        (1)、先定义有效性对象。

        (2)、将有效性对象添加到对应的sheet。

2、举例

        (1)设置时间有效性,如允许输入的值为2021/7/1 到 2021/7/31。

public static DataValidation getDateValidation(int startRowIndex,int startColumnIndex,
                                               int operatorType,String startTime,String                                                 endTime,                                                                                         String dateFormat){
//startRowIndex:起始行,startColumnIndex:起始列,operatorType:操作类型(有介于、未介于等,对应Java类型问度娘),dateFormat:时间格式

    //创建约束对象
    DVConstraint dvConstraint =         DVConstraint.createDateConstraint(operatorType,startTime,endTime,dateFormat);
    int firstRow = startRowIndex;//起始行
    int lastRow = 1000;//终止行,设置成自己需要的值
    int firstCol = startColumnIndex;//起始列,终止列,因为我只需要对一列数据做限制,所以值相等
    int lastCol = startColumnIndex;
    //获得单元格区域
    CellRangeAddressList regions = new CellRangeAddressList(firstRow,
            lastRow, firstCol, lastCol);
    // 获得有效性对象
    DataValidation validation = new HSSFDataValidation(regions,dvConstraint);
    return validation;
}

2、将定义好的有效性对象添加到对应的sheet

sheet.addValidationData(getDateValidation(行值,列值,
        DataValidationConstraint.OperatorType.BETWEEN,"2021-7-1","2021-7-31","yyyy-M-d"));                                        //这里的2021-7-31对应到Excel中为2021/7/31

注意:光设置有效性Excel输入一个合法值还是会报错,是因为单元格格式不是日期的,所以也要设置单元格格式为日期。

HSSFCellStyle dateStyle = workBook.createCellStyle();
HSSFDataFormat format= workBook.createDataFormat();
dateStyle.setDataFormat(format.getFormat("yyyy年m月d日"));
sheet.setDefaultColumnStyle(列值,dateStyle);

完结!!!

向其他的数值有效性也类似,定义有效性对象,添加有效性对象,设置单元格格式为相应类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值