EasyExcel导入excel文件解析日期格式数据出现偏差

Excel日期字段值: 7:00:00

解决方案:
增加 @DateTimeFormat("HH:mm")
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 EasyExcel 的监听器来实现这个功能。在读取 Excel 文件时,监听器会在读取每一行数据时触发,我们可以在监听器中对每一行数据进行校验,并将错误的数据标记为红色。 具体步骤如下: 1. 定义一个实体类来存储 Excel 中的数据,同时在类中添加一个字段用来存储错误信息。 2. 创建一个继承自 AnalysisEventListener 的监听器类,并重写其中的 invoke 方法。在 invoke 方法中,我们可以对每一行数据进行校验,并将错误信息保存到实体类的错误信息字段中。 3. 在读取 Excel 文件时,通过 read 方法读取数据并传入监听器。在监听器中,可以通过 ExcelRowAnalysisResult 对象获取到当前行的数据,可以通过反射将数据赋值给实体类。 4. 在将数据保存到数据库或者其他地方时,可以根据实体类的错误信息字段来判断数据是否合法,如果不合法则将该行数据标记为红色。 下面是一个示例代码: ```java @Data public class ExcelData { private String name; private Integer age; private String error; // 错误信息 } public class ExcelListener extends AnalysisEventListener<ExcelData> { private List<ExcelData> dataList = new ArrayList<>(); @Override public void invoke(ExcelData data, AnalysisContext context) { // 对每一行数据进行校验,将错误信息保存到实体类的 error 字段中 if (StringUtils.isBlank(data.getName())) { data.setError("姓名不能为空"); } if (data.getAge() == null || data.getAge() < 0) { data.setError("年龄不合法"); } dataList.add(data); } @Override public void doAfterAllAnalysed(AnalysisContext context) { // 所有数据解析完成后的回调方法 } public List<ExcelData> getDataList() { return dataList; } } public void readExcel(String filePath) throws Exception { ExcelListener listener = new ExcelListener(); EasyExcel.read(filePath, ExcelData.class, listener).sheet().doRead(); List<ExcelData> dataList = listener.getDataList(); for (ExcelData data : dataList) { if (StringUtils.isNotBlank(data.getError())) { // 将错误的数据标记为红色 // ... } } } ``` 在上面的示例代码中,我们定义了一个 ExcelData 类来存储 Excel 中的数据,其中包含了一个 error 字段用来存储错误信息。同时,我们创建了一个 ExcelListener 类来作为监听器,在 invoke 方法中对每一行数据进行校验,并将错误信息保存到实体类的 error 字段中。在读取 Excel 文件时,我们通过 read 方法读取数据并传入监听器,然后通过 getDataList 方法获取到所有的数据,遍历 dataList,如果发现某一行数据的 error 字段不为空,则将该行数据标记为红色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值