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

简介: 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),最终找到了答案,解决问题

最终代码

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


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
目录
相关文章
|
10天前
|
Java
Java String类型转换成Date日期类型
Java String类型转换成Date日期类型
|
5月前
|
存储 Java 数据库连接
JDBC存储datetime型数据
JDBC存储datetime型数据
|
8月前
5.3.2.2 操作字符串类型数据
5.3.2.2 操作字符串类型数据
31 0
|
8月前
|
C++
【C++基础】实现日期类
【C++基础】实现日期类
40 0
|
9月前
|
Java 数据库
Java 中日期String类型与Date类型相互转化
插入数据库时,存入当前日期,需要格式转换
65 0
|
存储 JSON 前端开发
【MySQL笔记】数字类型、时间和日期类型、字符串类型
在数据库中,经常需要存储一些数字,适合用数字类型来保存。数字类型包括整数类型、浮点数类型、定点数类型、BIT(位)类型。
33428 1
【MySQL笔记】数字类型、时间和日期类型、字符串类型
|
Java
java:Date日期类型的大小比较
java:Date日期类型的大小比较
128 0
|
存储 SQL JSON
MySQL数据库基础:数据类型详解-文本字符串类型
MySQL数据库基础:数据类型详解-文本字符串类型
176 0
MySQL数据库基础:数据类型详解-文本字符串类型