b s模式的網(wǎng)站開(kāi)發(fā)營(yíng)銷(xiāo)和銷(xiāo)售的區(qū)別在哪里
????????EasyExcel是Alibaba集團(tuán)開(kāi)源的EasyExcel技術(shù),該技術(shù)是針對(duì)Apache?POI技術(shù)的封裝和優(yōu)化,主要解決了POI技術(shù)的耗內(nèi)存問(wèn)題,并且提供了較好的API使用。不需要大量的代碼就可以實(shí)現(xiàn)excel的操作功能。
1.EasyExcel的配置
????????首先引入依賴,具體如下:
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.17</version></dependency><dependency><groupId>org.apche.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency>
2. 向excel寫(xiě)入數(shù)據(jù)
EasyExcel.write(FilePath,xxxEntity.class).excelType(ExcelTypeEnum.XLS/XLSX).sheet("aaa").dowrite(xxxEntity數(shù)據(jù))
????????FilePath表示Excel的路徑,aaa表示該ecxel一張名為aaa的表,excelType表示excel文件是xls還是xlsx,向這張表中寫(xiě)入類型為xxxEntity的數(shù)據(jù)(xxxEntity數(shù)據(jù)可為單個(gè)xxxEntity也為xxxEntity數(shù)組),表頭為xxxEntity對(duì)象的各個(gè)屬性。
????????如果希望表頭是自定義的,需要在對(duì)應(yīng)的xxxEntity實(shí)體對(duì)象類中的屬性上方加入@ExcelProperty("自定義名稱")注解。
3. 讀取excel文件數(shù)據(jù)
? ? ? ? EasyExcel讀取excel文件時(shí)首先需要?jiǎng)?chuàng)建監(jiān)聽(tīng)器類,其通過(guò)繼承AnalysisEventListener類實(shí)現(xiàn)。具體代碼如下:
public class xxxEntityListener extends AnalysisEventListener<xxxEntity>{//解析每一條數(shù)據(jù)時(shí)調(diào)用@Overridepublic void invoke(xxxEntity data,AnalysisContext context){log.info("數(shù)據(jù)內(nèi)容:",data);}//excel所有數(shù)據(jù)解析完成時(shí)調(diào)用@Overridepublic void doAfterAllAnalysed(AnalysisContext context){log.info("所有數(shù)據(jù)解析完成");}
}
然后通過(guò)下面的代碼讀取excel文件:
EasyExcel.read(FilePath/InputStream,xxxEntity.class,new xxxEntityListener()).sheet().doRead();
excel文件讀取過(guò)程中,除了可通過(guò)FilePath從excel文件中讀取數(shù)據(jù),還可以直接讀取數(shù)據(jù)流數(shù)據(jù)。