中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-09 23:51:48 來源:腳本之家 閱讀:397 作者:十步殺一人_千里不留行 欄目:編程語言

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

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

一、EasyPoi簡介

官網:http://www.afterturn.cn/

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

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

EasyPoi的主要特點

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

二、EasyPoi的功能介紹

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

1.Excel導入

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

2.Excel導出

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

3.Excel轉html

4.word導出

5.pdf導出

三、重點功能介紹

1.注解

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

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

2.Excel 模板

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

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

3.Excel<->Html的互轉

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大數據導出

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

多次測試用時統計,速度還是可以接受的。

數據量 用時 文件大小 列數
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.大數據導出View的用法

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

横山县| 晋江市| 桂林市| 临城县| 安福县| 阳东县| 百色市| 洪湖市| 陆河县| 岳阳县| 襄樊市| 额济纳旗| 太谷县| 察雅县| 全州县| 金山区| 武安市| 新宁县| 乌拉特中旗| 神木县| 临猗县| 金寨县| 泾川县| 东城区| 铜山县| 公主岭市| 安达市| 龙泉市| 南汇区| 祁门县| 凤城市| 清河县| 阿克| 榆林市| 平南县| 鄱阳县| 泰安市| 土默特左旗| 唐海县| 罗定市| 昌平区|