这两天在使用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