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);
完结!!!文章来源:https://www.toymoban.com/news/detail-408686.html
向其他的数值有效性也类似,定义有效性对象,添加有效性对象,设置单元格格式为相应类型。文章来源地址https://www.toymoban.com/news/detail-408686.html
到了这里,关于Java 设置Excel数据有效性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!