亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用EasyPoi輕松導入導出Excel文檔的方法示例

 更新時間:2019年12月17日 10:10:24   作者:十步殺一人_千里不留行  
這篇文章主要介紹了使用EasyPoi輕松導入導出Excel文檔的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

提到Excel的導入導出,大家肯定都知道alibaba開源的EasyExcel,該項目的github地址為:https://github.com/alibaba/easyexcel。

這個項目非常活躍,項目誕生的目的就是為了簡化開發(fā)、降低內(nèi)存消耗。我項目中也用過,但還是有一些槽點的,比如文檔很簡陋,功能做的不完善,不支持圖片的讀取等。所以,今天給大家推薦另外一款Excel處理的工具:EasyPoi。

一、EasyPoi簡介

官網(wǎng):http://www.afterturn.cn/

文檔:http://easypoi.mydoc.io/

EasyPoi功能如同名字easy,主打的功能就是容易,讓一個沒見接觸過poi的人員 就可以方便的寫出Excel導出,Excel模板導出,Excel導入,Word模板導出,通過簡單的注解和模板 語言(熟悉的表達式語法),完成以前復雜的寫法 ,不如poi那么自定義,不如jxl那么多標簽,但是我們就是寫的少,寫的少。

EasyPoi的主要特點

  1. 設(shè)計精巧,使用簡單
  2. 接口豐富,擴展簡單
  3. 默認值多,write less do more
  4. spring mvc支持,web導出可以簡單明了

二、EasyPoi的功能介紹

Excel自適應(yīng)xls和xlsx兩種格式,word只支持docx模式,功能還是挺豐富的。

1.Excel導入

  • 注解導入
  • Map導入
  • 大數(shù)據(jù)量導入sax模式
  • 導入文件保存
  • 文件校驗
  • 字段校驗

2.Excel導出

  • 注解導出
  • 模板導出
  • html導出

3.Excel轉(zhuǎn)html

4.word導出

5.pdf導出

三、重點功能介紹

1.注解

EasyPoi起因就是Excel的導入導出,最初的模板是實體和Excel的對應(yīng),model--row,filed--col 這樣利用注解我們可以和容易做到excel到導入導出 經(jīng)過一段時間發(fā)展,現(xiàn)在注解有5個類分別是

  • @Excel 作用到filed上面,是對Excel一列的一個描述
  • @ExcelCollection 表示一個集合,主要針對一對多的導出,比如一個老師對應(yīng)多個科目,科目就可以用集合表示
  • @ExcelEntity 表示一個繼續(xù)深入導出的實體,但他沒有太多的實際意義,只是告訴系統(tǒng)這個對象里面同樣有導出的字段
  • @ExcelIgnore 和名字一樣表示這個字段被忽略跳過這個導導出
  • @ExcelTarget 這個是作用于最外層的對象,描述這個對象的id,以便支持一個對象可以針對不同導出做出不同處理

2.Excel 模板

模板是處理復雜Excel的簡單方法,復雜的Excel樣式,可以用Excel直接編輯,完美的避開了代碼編寫樣式的雷區(qū),同時指令的支持,也提了模板的有效性。就像下面這樣使用,具體用法請看文檔。

3.Excel<->Html的互轉(zhuǎn)

4.Word模板導出

5.圖片的導入導出

@Test//圖片導入
public void test() {
        try {
            ImportParams params = new ImportParams();
            params.setNeedSave(true);
            List<CompanyHasImgModel> result = ExcelImportUtil.importExcel(
                    new File(PoiPublicUtil.getWebRootPath("import/imgexcel.xls")),
                    CompanyHasImgModel.class, params);
            for (int i = 0; i < result.size(); i++) {
                System.out.println(ReflectionToStringBuilder.toString(result.get(i)));
           }
            Assert.assertTrue(result.size() == 4);
       } catch (Exception e) {
            e.printStackTrace();
       }
   }
}
 //導出
 @Excel(name = "公司LOGO", type = 2 ,width = 40 , height = 20,imageType = 1)
    private String companyLogo;

6.Excel大數(shù)據(jù)導出

大數(shù)據(jù)導出是當我們的導出數(shù)量在幾萬,到上百萬的數(shù)據(jù)時,一次從數(shù)據(jù)庫查詢這么多數(shù)據(jù)加載到內(nèi)存然后寫入會對我們的內(nèi)存和CPU都產(chǎn)生壓力,這個時候需要我們像分頁一樣處理導出分段寫入Excel緩解Excel的壓力 EasyPoi提供的是兩個方法 強制使用 xssf版本的Excel 。具體代碼看文檔,我們看下資源占用即可:

多次測試用時統(tǒng)計,速度還是可以接受的。

數(shù)據(jù)量 用時 文件大小 列數(shù)
100W 16.4s 24.3MB 5
100W 15.9s 24.3MB 5
200W 29.5s 48.5MB 5
100W 30.8s 37.8MB 10
200W 58.7s 76.1MB 10

7.大數(shù)據(jù)導出View的用法

Easypoi view 項目是為了更簡單的方便搭建在導出時候的操作,利用spring mvc 的view 封裝,更加符合spring mvc的風格。EasypoiBigExcelExportView 是針對大數(shù)據(jù)量導出特定的View,在跳轉(zhuǎn)到這個View的時候不需要查詢數(shù)據(jù),而且這個View自己去查詢數(shù)據(jù),用戶只要實現(xiàn)IExcelExportServer接口就可以了 。

總結(jié),Easypoi的功能強大,文檔和示例代碼豐富,大家在開發(fā)中如果有類似的需求,不妨一試。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解java線程的開始、暫停、繼續(xù)

    詳解java線程的開始、暫停、繼續(xù)

    本文將介紹通過線程讀取文件內(nèi)容,并且可以控制線程的開始、暫停、繼續(xù),來控制讀文件。具有一定的參考作用,下面跟著小編一起來看下吧
    2017-01-01
  • Springboot?整合?RabbitMQ?消息隊列?詳情

    Springboot?整合?RabbitMQ?消息隊列?詳情

    這篇文章主要介紹了Springboot整合RabbitMQ?消息隊列詳情,文章為榮啊主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 解決跨域請求,NG返回403(403并不一定是NG問題)

    解決跨域請求,NG返回403(403并不一定是NG問題)

    這篇文章主要介紹了解決跨域請求,NG返回403(403并不一定是NG問題),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • slf4j使用log4j的配置參數(shù)方式

    slf4j使用log4j的配置參數(shù)方式

    這篇文章主要介紹了slf4j使用log4j的配置參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中字符串去重的特性介紹

    Java中字符串去重的特性介紹

    這篇文章主要介紹了Java中字符串去重的特性,是Java8中引入的一個新特性,至于是否真的用起來順手就見仁見智了...需要的朋友可以參考下
    2015-07-07
  • SpringBoot項目啟動打包報錯類文件具有錯誤的版本 61.0, 應(yīng)為 52.0的解決方法

    SpringBoot項目啟動打包報錯類文件具有錯誤的版本 61.0, 應(yīng)為 52.0的解決

    這篇文章主要給大家介紹了關(guān)于SpringBoot項目啟動打包報錯類文件具有錯誤的版本 61.0, 應(yīng)為 52.0的解決方法,文中有詳細的排查過程和解決方法,通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Java經(jīng)典面試題最全匯總208道(四)

    Java經(jīng)典面試題最全匯總208道(四)

    這篇文章主要介紹了Java經(jīng)典面試題最全匯總208道(四),本文章內(nèi)容詳細,該模塊分為了六個部分,本次為第四部分,需要的朋友可以參考下
    2023-01-01
  • Json轉(zhuǎn)化為Java對象的實例詳解

    Json轉(zhuǎn)化為Java對象的實例詳解

    這篇文章主要介紹了Json轉(zhuǎn)化為Java對象的實例詳解的相關(guān)資料,前后端數(shù)據(jù)交互的情況經(jīng)常會遇到Json串與java 對象的相互轉(zhuǎn)換方便操作,需要的朋友可以參考下
    2017-08-08
  • Java透明窗體的設(shè)置方法

    Java透明窗體的設(shè)置方法

    在本文中我們給大家整理了關(guān)于Java透明窗體的設(shè)置方法以及需要注意的地方,需要的朋友們學習參考下。
    2019-03-03
  • Java學生信息類繼承與接口的原理及使用方式

    Java學生信息類繼承與接口的原理及使用方式

    這篇文章主要介紹了Java學生信息類繼承與接口的原理及使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02

最新評論