POI设置日期类型时间约束createDateConstraint不生效了

背景

在使用 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),最终找到了答案,解决问题

POI设置日期类型时间约束createDateConstraint不生效了

最终代码

 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 的包装即可

参考链接

1、https://www.demo2s.com/java/apache-poi-datavalidationhelper-createdateconstraint-int-operatortype.html

2、http://t.csdn.cn/OyWGv


原文始发于微信公众号(醉鱼Java):POI设置日期类型时间约束createDateConstraint不生效了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/231540.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!