你還在用原生poi處理excel?太麻煩了來瞧瞧這個

你還在用原生poi處理excel?太麻煩了來瞧瞧這個~

easypoi

01、前言

excel在日常工作中經常被用來存儲用例信息,是一種非常便捷的數據存儲工具有著眾多的優點,我們就不一一介紹了。

今天來講講java操作excel,總所周知java是世界上最好的語言(不容反駁),操作一個excel肯定是不在話下。

咱們熟知的POI,Apache大佬出品的一款非常強大的office軟件操作包。

雖然POI強大,但是代碼相對比較繁瑣,在當前python引領的大潮下,簡化代碼勢在必行。

那麼如何簡化代碼呢?

其實這些事情早就已經有人幫我們想好和做好了,比如阿里巴巴的easyexcel,和我們今天的主角esaypoi都是非常好的解決方案。

那為什麼選擇easypoi而不是阿里的easyexcel呢?

當然是easypoi的讀寫導入和導出更加簡單。

接下來大家就跟隨著我一起慢慢揭開easypoi的神秘面紗。

02、簡介

easypoi功能如同名字easy,主打的功能就是容易,讓一個沒見接觸過poi的人員 就可以方便的寫出Excel導出,Excel模板導出,Excel導入,Word模板導出,通過簡單的註解和模板。

官網:https://opensource.afterturn.cn/doc/easypoi.html

03、maven座標

<dependency>
<groupid>cn.afterturn/<groupid>
<artifactid>easypoi-annotation/<artifactid>
<version>4.0.0/<version>
/<dependency>
<dependency>
<groupid>cn.afterturn/<groupid>
<artifactid>easypoi-base/<artifactid>
<version>4.0.0/<version>
/<dependency>

04、最簡單的導入

完成最簡單的導入,只需要兩步:

一使用註解配置實體類,二調用工具類。

實體類(省略get/set方法)

public class API implements Serializable {

@Excel(name = "接口名稱")
private String name;
@Excel(name = "接口編號")
private String id;
@Excel(name = "接口提交方式")
private String type;
@Excel(name = "接口地址")
private String url;
@Excel(name = "參數類型")
private String contentType;

@Excel(name = "接口名稱")這個註解是啥意思呢?name屬性表示excel表頭。

如圖:

你還在用原生poi處理excel?太麻煩了來瞧瞧這個

當我們導入excel時,就會按照@Excel註解的映射關係封裝API實體類。

工具類

FileInputStream fis = new FileInputStream(EXCEL_PATH);
//導入參數設置類
ImportParams params = new ImportParams();
List importExcel = ExcelImportUtil.importExcel(fis, API.class, params);

總共三行代碼,第一行加載excel文件,第二行設置導入參數,第三行根據導入參數返回對應結果並封裝成List集合。

這三個代碼中主要講解第二行和第三行,第二行是導入參數設置,它能給我們提供什麼設置呢?參考下表:

你還在用原生poi處理excel?太麻煩了來瞧瞧這個

你還在用原生poi處理excel?太麻煩了來瞧瞧這個

對照完這張表之後,你會發現即使我們不對ImportParams做任何設置,也會有對應的默認值。那麼第二句代碼就能翻譯成:讀取第一個Sheet且只讀取第一個,表頭是Sheet的第一行且只有一行。最終我們就能得到第一個Sheet中每一行數據,並且每一行被封裝成了API對象也就是一個List。有了這個集合之後我們需要導入的數據就能任由我們如何處理了,是不是很簡單。

05、最簡單的導出

List list = new ArrayList();
ExportParams exportParams = new ExportParams();
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, API.class, list);
workbook.write(new FileOutputStream(EXCEL_PATH));

導出也只有四句代碼。
第一句是需要導出的數據集合,第二句導出參數,第三句獲取導出workbook對象,第四句通過輸出流導出數據到excel中。

其中第二句也是有很多設置的,我們就用默認設置也能是導出的。

第三句也要用到API實體類中的註解映射關係。

06、最後

通過esaypoi我們能夠使用最少的代碼完成基本的導入和導出,基本上能夠應對實際工作中80%的需求了。如果需要對excel修改的話,目前來說市面上的工具包都做的不太簡單,所以還是需要通過編寫原生poi代碼完成。

如果你需要修改excel的代碼可以留言哦~


分享到:


相關文章: