easypoi 多sheet导入_程序员接私活利器 玩转excel导入导出
為什么會寫Easypoi
以前的以前(歲月真TMD的快)我雖然寫了不少代碼但還是很少寫poi,然后跳到一家公司之后就和業務人員聊上了,來這個需要個報表,這個報表樣式是這樣的,這個表頭是這樣的,就這樣我寫了大量的poi代碼,每次都是大量的篇幅,copy to copy,無聊的一逼,然后加入了jeecg,jeecg中有一個小的工具類,雖然我也不知道是誰寫的,然是可以用注解搞定最簡單的導出,突然豁然開朗,我可以完善,讓我從報表的苦海當中脫離出來,這樣我花了一周的時間做了第一個版本支持導入導出放到了jeecg,發現還是不錯的,慢慢的用的人越來越多,我就把這塊獨立出來了,再然后有人提出了模板,然后就加入了模板功能,提出了word的需求,加入了word的功能,后來工作忙了雖然沒再參與jeecg,但還是一直維持這easypoi的更新,根據見識的增長也不斷的重構這代碼,直到現在
獨特的功能
- 基于注解的導入導出,修改注解就可以修改Excel
- 支持常用的樣式自定義
- 基于map可以靈活定義的表頭字段
- 支持一堆多的導出,導入
- 支持模板的導出,一些常見的標簽,自定義標簽
- 支持HTML/Excel轉換,如果模板還不能滿足用戶的變態需求,請用這個功能
- 支持word的導出,支持圖片,Excel
小白如何開始
- 下載demo運行看看,基本上常見的用用法都在里面easypoi-test
- 查看幾個*Util的用法,Easypoi的主要輸出就是這個
- 看看注解的意思
- 看看模板的標簽用法
- 可以出師了
Easypoi 為誰而開發
- 不太熟悉poi的
- 不想寫太多重復太多的
- 只是簡單的導入導出的
- 喜歡使用模板的
都可以使用easypoi
Easypoi的目標是什么
Easypoi的目標不是替代poi,而是讓一個不懂導入導出的快速使用poi完成Excel和word的各種操作,而不是看很多api才可以完成這樣工作
1.3 使用
- 1.easypoi 父包--作用大家都懂得
- 2.easypoi-annotation 基礎注解包,作用與實體對象上,拆分后方便maven多工程的依賴管理
- 3.easypoi-base 導入導出的工具包,可以完成Excel導出,導入,Word的導出,Excel的導出功能
- 4.easypoi-web 耦合了spring-mvc 基于AbstractView,極大的簡化spring-mvc下的導出功能
- 5.sax 導入使用xercesImpl這個包(這個包可能造成奇怪的問題哈),word導出使用poi-scratchpad,都作為可選包了
如果不使用spring mvc的便捷福利,直接引入easypoi-base 就可以了,easypoi-annotation
1.4 測試項目
測試這個事情真不是個容易的事情
測試項目包括兩塊 Junit 的常見測試和spring 的view測試
1.spring view測試
運行application就可以了,訪問界面,然后看到界面
對應的代碼在view下面
2.Junit的測試目錄結構如下
- tohtml html預覽測試
- view 導出的view測試
- cache 自定義緩存測試
- html html互轉測試
- test
- excel
- read 讀取Excel測試
- check 導入檢查測試
- hanlder 導入數據處理
- img 含圖片導入測試
- styler 導出樣式自定義測試
- template 模板導出測試
- sum 導出含統計測試
- test 導出測試
- groupname groupname 屬性測試
- img 導出圖片測試
- pdf pdf測試
- word word導出測試
- util util 內部測試
目前的測試覆蓋率
2. Excel 注解版
2.1 Excel導入導出
Excel的導入導出是Easypoi的核心功能,前期基本也是圍繞這個打造的,主要分為三種方式的處理,其中模板和Html目前只支持導出,因為支持Map.class其實導入應該是怎樣都支持的
- 注解方式,注解變種方式
- 模板方式
- Html方式
下面分別就這三種方式進行講解
2.2 注解
注解介紹
easypoi起因就是Excel的導入導出,最初的模板是實體和Excel的對應,model--row,filed--col 這樣利用注解我們可以和容易做到excel到導入導出
經過一段時間發展,現在注解有5個類分別是
- @Excel 作用到filed上面,是對Excel一列的一個描述
- @ExcelCollection 表示一個集合,主要針對一對多的導出,比如一個老師對應多個科目,科目就可以用集合表示
- @ExcelEntity 表示一個繼續深入導出的實體,但他沒有太多的實際意義,只是告訴系統這個對象里面同樣有導出的字段
- @ExcelIgnore 和名字一樣表示這個字段被忽略跳過這個導導出
- @ExcelTarget 這個是作用于最外層的對象,描述這個對象的id,以便支持一個對象可以針對不同導出做出不同處理
注解中的ID的用法
這個ID算是一個比較獨特的例子,比如
@ExcelTarget("teacherEntity")public class TeacherEntity implements java.io.Serializable { /** name */ @Excel(name = "主講老師_teacherEntity,代課老師_absent總結
以上是生活随笔為你收集整理的easypoi 多sheet导入_程序员接私活利器 玩转excel导入导出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iso linux 内核版本号_Linu
- 下一篇: 饥荒机器人怎么用避雷针充电_新款iPho