使用EasyExcel时踩过的坑

编程入门 行业动态 更新时间:2024-10-11 07:31:18

使用<a href=https://www.elefans.com/category/jswz/34/1754084.html style=EasyExcel时踩过的坑"/>

使用EasyExcel时踩过的坑

目录

  • 一、问题描述
  • 二、使用EasyExcel的版本
  • 三、场景复现
  • 四、问题修复

一、问题描述

使用EasyExcel读取文件数据时,出现数据无法读取情况。

二、使用EasyExcel的版本

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version>
</dependency>

三、场景复现

使用了@Accessors(chain = true)(lombok.experimental.Accessors)注解导致无法读取excel文件中的数据。
读取对象定义如下:

@Data
@Accessors(chain = true)
@EqualsAndHashCode
public class DemoDTO implements Serializable {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "编号")@ExcelProperty("编号")private String number;@ApiModelProperty(value = "名称")@ExcelProperty("名称")private String name;
}

读取逻辑如下:

private List<DemoDTO> parseExcelFileData(MultipartFile multipartFile) {List<DemoDTO> demoDTOList = new ArrayList<>();// 创建临时文件File excelFile = FileUtil.createTempFile();try {// 文件转换multipartFile.transferTo(excelFile);Assert.notNull(excelFile, "文件不存在,请重新上传");EasyExcel.read(FileUtil.getInputStream(Objects.requireNonNull(excelFile))).sheet("Sheet1").head(DemoDTO.class).headRowNumber(1).registerReadListener(new AnalysisEventListener<DemoDTO>() {@Overridepublic void invoke(DemoDTO data, AnalysisContext context) {// 获取当前index
//                            Integer currentRowNum = context.readRowHolder().getRowIndex();// 校验格式if (BeanUtil.isNotEmpty(data)) {demoDTOList.add(data);}}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {log.info("数据读取完毕");}}).doRead();} catch (Exception e) {log.error("文件解析失败", e);} finally {FileUtil.del(excelFile);}return demoDTOList;}

四、问题修复

定义的映射类中不能使用@Accessors(chain = true)(lombok.experimental.Accessors)注解。

@Data
@EqualsAndHashCode
public class DemoDTO implements Serializable {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "编号")@ExcelProperty("编号")private String number;@ApiModelProperty(value = "名称")@ExcelProperty("名称")private String name;
}

更多推荐

使用EasyExcel时踩过的坑

本文发布于:2023-11-15 19:44:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1605258.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:EasyExcel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!