0


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);

完结!!!

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

标签: java excel poi

本文转载自: https://blog.csdn.net/qq_42091640/article/details/118390146
版权归原作者 我是小白白滴滴 所有, 如有侵权,请联系我们删除。

“Java 设置Excel数据有效性”的评论:

还没有评论