在javapoi导入Excel通用工具类示例详解-创新互联

前言

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、外贸网站建设、香河网络推广、重庆小程序开发公司、香河网络营销、香河企业策划、香河品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供香河建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

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

问题引入和分析


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

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


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


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

第一个问题:


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


所以我想到了两个办法:


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


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

第二个问题:


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

需求


假设我们需求的excel如下:


我们可以看做两部分:


第一部分:


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

第二部分:


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

项目


需要导入的jar包


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


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


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

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

 
   
   org.apache.poi 
   poi-ooxml 
   3.8 
   
   
   org.apache.poi 
   poi 
   3.8 
   
   
   org.apache.poi 
   poi-ooxml-schemas 
   3.8 
   
 
   
   commons-beanutils 
   commons-beanutils 
   1.8.3 
   
 
   
    commons-lang 
    commons-lang 
    2.6 
   

新闻名称:在javapoi导入Excel通用工具类示例详解-创新互联
分享路径:http://azwzsj.com/article/dejehi.html