这两天在使用easyexcel导出excel的时候日期格式全都是字符串导致导出的excel列无法筛选
后来调整了一下终于弄好了,看一下最终效果
这里涉及到easyexcel和poi版本冲突的问题,一直没搞定,最后狠下心来把所有的都升级到了最新版,然后把程序里的报错都处理了一遍,神奇的是最新版的没出问题,可以导出日期格式,参考了很多博客,记录一下。
最终要调整的地方有三个,一个是poi的版本,一个是easyexcel的版本,另一个是commons-io的版本
<commons-io.version>2.18.0</commons-io.version>
<poi.version>5.4.0</poi.version>
<easy-excel.version>4.0.3</easy-excel.version>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easy-excel.version}</version>
</dependency>
注意事项
- poi的版本对commons-io的版本有要求
https://blog.csdn.net/weixin_48524970/article/details/134379243
https://poi.apache.org/changes.html#5.4.0
- 日期格式使用 @ContentStyle(dataFormat = 14)
https://blog.csdn.net/tanghuan0827/article/details/126180146
- 日期格式不要进行Converter转换,否则都是字符串
下面是我的实体类的字段
@ContentStyle(dataFormat = 14)
@ExcelProperty(value = {"购入日期"}, index = 9)
private Date buyDate;
@ContentStyle(dataFormat = 14)
@ExcelProperty(value = {"报废日期"}, index = 10)
private LocalDate scrapDate;
这种Date和LocalDate导出的数据都是日期格式,关键的设置是@ContentStyle(dataFormat = 14)
参考文献
https://blog.csdn.net/tanghuan0827/article/details/126180146
https://blog.csdn.net/weixin_48524970/article/details/134379243
https://poi.apache.org/changes.html#5.4.0