基础微网站开发咨询,永久免费crm都有什么,做哪个网站最简单,h5制作官网目录 一、问题描述二、使用EasyExcel的版本三、场景复现四、问题修复 一、问题描述
使用EasyExcel读取文件数据时#xff0c;出现数据无法读取情况。
二、使用EasyExcel的版本
dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel出现数据无法读取情况。
二、使用EasyExcel的版本
dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.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 ListDemoDTO parseExcelFileData(MultipartFile multipartFile) {ListDemoDTO 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 AnalysisEventListenerDemoDTO() {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;
}