【记录】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);

完结!!!

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

————————————————

版权声明:本文为CSDN博主「我是小白白滴滴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_42091640/article/details/118390146

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值