返回顶部
首页 > 资讯 > 精选 >在java poi导入Excel通用工具类示例详解
  • 561
分享到

在java poi导入Excel通用工具类示例详解

javapoiexcel通用工具类 2023-05-31 04:05:22 561人浏览 安东尼
摘要

前言本文主要给大家介绍了关于java poi导入excel通用工具类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。问题引入和分析提示:如果不想看罗嗦的文章,可以直接到最后点击源码下载运行即可最近在做一个导入Ex

前言

本文主要给大家介绍了关于java poi导入excel通用工具类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

问题引入和分析

提示:如果不想看罗嗦的文章,可以直接到最后点击源码下载运行即可

最近在做一个导入Excel的功能,在做之前在百度上面查找“java通用导入Excel工具类”,没有查到,大多数都是java通用导出Excel。后来仔细想想,导出可以利用java的反射,做成通用的,放进相应的实体成员变量中,导入为什么不可以呢?也是可以的,不过在做之前我们要解决如下两个问题:

表格中的列数和顺序要和实体类中的成员变量个数和顺序一致。

表格中的列的类型要和成员变量的类型一致。

第一个问题:

列数一致可以做到,但是我们最后都是要插入数据库的。那么id是必不可少的,或者良好的习惯可能还有创建时间,创建人等信息。

所以我想到了两个办法:

封装一个Vo,只将需要的字段封装进去,并且字段顺序和表格列的顺序一致,再将vo与实体类po转化(用PropertyUtil.copy方法);

在需要的成员变量上注入自定义注解,并且加入注解的这些字段顺序和表格列的顺序一致,利用反射得到这些字段。
这里主要利用第二个方法,因为扩展性更好

第二个问题:

获取表格数据的时候,我们要判断类型,并取得相应值,全部转化为String类型,当我们给实体类赋值的时候,利用反射获取需要的成员变量的类型,并赋值。

需求

假设我们需求的excel如下:

在java poi导入Excel通用工具类示例详解

我们可以看做两部分:

第一部分:

第二行到第11行,为一个列表数据,共有字段5个,分别为:学号,姓名,身份证号码,性别,分数

第二部分:

第12行第五列,第12行第六列,共有字段2个,分别为:总计,平均

项目

需要导入的jar

poi的相关jar包,主要用来处理excel

beanutils 利用反射为成员变量赋值

commons-lang String判断非空的方法,可以不用自己判断

如若Maven项目导入下面的jar包

<!-- poi操作excel -->   <dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml</artifactId>    <version>3.8</version>   </dependency>   <dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi</artifactId>    <version>3.8</version>   </dependency>   <dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml-schemas</artifactId>    <version>3.8</version>   </dependency> <!-- beanutils -->   <dependency>    <groupId>commons-beanutils</groupId>    <artifactId>commons-beanutils</artifactId>    <version>1.8.3</version>   </dependency> <!-- commons-lang-->   <dependency>     <groupId>commons-lang</groupId>     <artifactId>commons-lang</artifactId>     <version>2.6</version>   </dependency> 

--结束END--

本文标题: 在java poi导入Excel通用工具类示例详解

本文链接: https://lsjlt.com/news/223519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作