最近公司需求解析excel,一开始使用poi做的挺好的,后来直接上了几十万条数据的excel文件,内存直接溢出了,网上查到apache poi还提供了专门处理海量数据的方法,使用sax解析,果然用了内存使用率下降,但是不能解析xls文件,只能解析xlsx文件,所以把工具简单封装了一下,如果是xls的用传统方式解析,如果是xlsx的大文件,用sax,这样灵活一定,详见md文件
(建议前往github查看最新内容)
https://gitee.com/hellojamie/ebatis
Ebatis
用于解析excel表格内容到 java bean 目前支持xls、xlsx格式文件 对于大数据量文件自动使用sax方式解析,防止内存溢出
目录(记得看注意):
开始
扩展功能
注意
开始
因为经常有改动,需要手动打包发布
// Maven导入第三方poi依赖,或者直接把master pull下来发布到本地
org.apache.poi
poi
3.17
org.apache.poi
poi-ooxml
3.17
xerces
xercesImpl
2.9.1
首先你需要创建好你的实体类,假设现在有这样一个excel表格需要解析
姓名手机号生日
王文娟
18888888888
1996-01-01
大美丽
16666666666
1996-01-01
首先你需要一个实体类 有几点要求,必须正确封装,包含get\set方法 属性上包含必要的Mapping注解,key属性填入与表格对应的名称,属性类型根据需要自己定义
package cc.ebatis.controller;
import java.io.File;
import cc.ebatis.bean.People;
import cc.ebatis.impl.Init;
import cc.ebatis.pojo.ActionContext;
public class Test