背景
在使用 POI 导出 excel 时间类型加入时间约束时,发生了使用 Excel 打开无法正确使用时间约束的问题,但是在 永中Office 打开可以使用
关键词
helper.createDateConstraint,POI设置时间约束
设置时间约束的代码如下
该代码是有问题的,正确的代码在文章末尾
String dateFormat = "yyyy/MM/dd";
String start = "1900,01,01";
String end = "2399,12,30";
constraint = helper.createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN, start, end, dateFormat);
解决思路
1、排查使用 POI 设置的时间约束与在 Excel 中创建的时间约束有什么不通
2、修改格式化日期格式测试是否可以生效
3、修改日期范围大小测试是否生效
4、查看 createDateConstraint
方法接收的参数各是什么意思,需要什么格式
5、查阅网上资料
问题所在
经过上面几步的排查,初步确定应该是设置的日期格式问题,但是不懂如何正确设置,所以交给了优秀的互联网,google 一下,此时发现一篇文章写的不错(http://t.csdn.cn/OyWGv),解决了我的问题,然后继续查阅引用链接(https://www.demo2s.com/java/apache-poi-datavalidationhelper-createdateconstraint-int-operatortype.html),最终找到了答案,解决问题
最终代码
String dateFormat = "yyyy/MM/dd";
String start = "Date(1900,01,01)";
String end = "Date(2399,12,30)";
constraint = helper.createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN, start, end, dateFormat);
即将设置的日期加入 Date 的包装即可
参考链接
本文由mdnice多平台发布
网友评论