背景
在使用 POI 導(dǎo)出 excel 時(shí)間類型加入時(shí)間約束時(shí),發(fā)生了使用 Excel 打開無(wú)法正確使用時(shí)間約束的問(wèn)題,但是在 永中Office 打開可以使用
關(guān)鍵詞
helper.createDateConstraint,POI設(shè)置時(shí)間約束
設(shè)置時(shí)間約束的代碼如下
該代碼是有問(wèn)題的,正確的代碼在文章末尾
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 設(shè)置的時(shí)間約束與在 Excel 中創(chuàng)建的時(shí)間約束有什么不通
2、修改格式化日期格式測(cè)試是否可以生效
3、修改日期范圍大小測(cè)試是否生效
4、查看 createDateConstraint 方法接收的參數(shù)各是什么意思,需要什么格式
5、查閱網(wǎng)上資料
問(wèn)題所在
經(jīng)過(guò)上面幾步的排查,初步確定應(yīng)該是設(shè)置的日期格式問(wèn)題,但是不懂如何正確設(shè)置,所以交給了優(yōu)秀的互聯(lián)網(wǎng),google 一下,此時(shí)發(fā)現(xiàn)一篇文章寫的不錯(cuò)(http://t.csdn.cn/OyWGv),解決了我的問(wèn)題,然后繼續(xù)查閱引用鏈接(https://www.demo2s.com/java/apache-poi-datavalidationhelper-createdateconstraint-int-operatortype.html),最終找到了答案,解決問(wèn)題

最終代碼
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);
即將設(shè)置的日期加入 Date 的包裝即可
參考鏈接
本文由mdnice多平臺(tái)發(fā)布