org.apache.poi.xssf 包 在 poi-ooxml jar 里面
你可以在maven pom.xml 这样配置
<!-- ***************************** poi ***************************** --><!-- poi HSSF is our port of the Microsoft Excel 97(-2007) file format (BIFF8) to pure Java. -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<!-- poi-ooxml XSSF is our port of the Microsoft Excel XML (2007+) file format (OOXML) to pure Java -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.14</version>
</dependency>
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。Easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到KB级别,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便。Easyexcel的Github地址:https://github.com/alibaba/easyexcel。
EasyExcel优势
· 注解式自定义 *** 作。
· 输入输出简单,提供输入输出过程的接口
· 支持一定程度的单元格合并等灵活化 *** 作
EasyExcel劣势
· 框架不成熟,1.1.0版本后提供灵活接口的只剩beta版本
· 依然存在一些bug
· 没有一套完整的api
第一步:pom.xml添加依赖,引入jar包:
版本依赖:
第二步:POJO对象编写:
Student.java实体对象继承BaseRowModel,编写如下:
第三步:编写监听器,实现对导入的excel文档的处理,实例如下:
注:具体数据库入库业务代码本文略过,请对应实现业务。
第四步:控制类中调用,进入导入页JSP页addBatchArchivesUser.jsp方法为toAddBatchArchivesUser(String backFlag),保存数据方法为:addBatchArchivesUser(@RequestParam("file") MultipartFile mfile,String orgId,String carCategory)代码如下:
注核心要点:一、根据上传文件后缀为xls、xlsx对ExcelReader中传对应的枚举参数,实现对office 2003 以前的版本和之后版本的区分处理;二、通过监听器的构造函数,从控制类传要调用的服务类(userService);三、通过监听器相关的get方法,将处理结果返回,如本文中的listener.getResult()以上三点,对于初次使用者容易出错。
在pom.xml中的<dependencies>标签内增加:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
如果你是要把私有jar添加到本地库,则要使用Install命令,要么你在eclipse中执行install,要么你就在cmd命令中执行mvn的install命令
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)