利用hutool解析excel内容转换为实体,实体属性为空
一、博客前提
工作中有遇到一个需求,客户提供需要插入数据库的原始数据的excel表格,我去解析表格,将数据插入数据库。当时立马就想到了用hutool的工具类,直接将excel表格内容的转换为我需要的实体对象。网上也有写了很多这种类似的博客,可是我在参考网上博客内容去做,利用hutool解析excel内容转换为实体,但是遇到实体属性为空的问题,本篇博客就作为一个工作笔记记录一下。
二、代码实现
1.引入pom
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.5.8</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.1.7</version> </dependency>
2、定义excel转换后实体
3、解析代码
4、excel表格格式
5、结果展示
到这里展示的内容,就已经将excel里的转换为我需要的实体对象list了
三、问题复现即解决
2、
下面来展示下,我参照网上的博客写代码时遇到的问题
通过和上面的图片对比,我们就可以发现在转换数据的时候,虽然数据大小也是和前面的一样有5126条,但是里面的实体内容确实null,原因是因为
ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); List<GoodFavorOfExcel> list = reader.readAll(GoodFavorOfExcel.class);
没有对ExcelReader对象增加标题别名,导致hutool工具类底层解析时,无法得知那一列的内容是对应实体里的哪一个属性。这也是网上大多数博客没有讲到的地方。hutoll的api也没有讲到这一点:。
2、解决方法
解决的方法就是设置标题和别名的对应关系
四、总结
本篇博客仅仅是一个很简单的使用笔记,想要详细了解为什么设置了标题,别名对应关系就可展示数据的读者,可自行查看源码了解原理。
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~