easyExcel是阿里巴巴開源poi插件之一,當(dāng)前最新版本1.1.2-beta5,poi版本3.17,因此,集成時老版本poi需要提升poi版本,或者做版本隔離。
主要解決了poi框架使用復(fù)雜,sax解析模式不容易操作,數(shù)據(jù)量大起來容易OOM,解決了POI并發(fā)造成的報錯(推薦學(xué)習(xí):PHP視頻教程)
主要解決方式:通過解壓文件的方式加載,一行一行的加載,并且拋棄樣式字體等不重要的數(shù)據(jù),降低內(nèi)存的占用
EasyExcel優(yōu)勢
注解式自定義操作。
輸入輸出簡單,提供輸入輸出過程的接口
支持一定程度的單元格合并等靈活化操作
EasyExcel劣勢
框架不成熟,1.1.0版本后提供靈活接口的只剩beta版本
依然存在一些bug
沒有一套完整的api
ExcelUtil快速使用
maven引用(版本控制內(nèi)若存在低版本POI,請升級版本和代碼,官方POI版本3.17):
<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beta5</version> </dependency>
實體類繼承BaseRowModel ,對需要導(dǎo)出或者導(dǎo)入的字段增加@ExcelProperty注解,index值為對應(yīng)excel中的列,value為表頭,format為日期格式化
public class PersonDto extends BaseRowModel{ /** id */ @ExcelProperty(index = 0 , value = "id") private String id; /** 姓名 **/ @ExcelProperty(index = 1 , value = "姓名") private String name; /** 生日 **/ @ExcelProperty(index = 2 , value = "生日" , format = "yyyy-MM-dd") private String birth; }