最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

EasyExcel實現(xiàn)讀寫Excel文件的示例代碼

 更新時間:2022年08月17日 09:02:32   作者:別團(tuán)等shy哥發(fā)育  
EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單、節(jié)省內(nèi)存著稱。它可以在盡可能節(jié)約內(nèi)存的情況下支持讀寫百M的Excel,所以本文就將利用它實現(xiàn)讀寫Excel文件,感興趣的可以了解一下

1、EasyExcel介紹

EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單、節(jié)省內(nèi)存著稱。EasyExcel能大大減少占用內(nèi)存的主要原因是在解析Excel時沒有將文件數(shù)據(jù)一次性全部加載到內(nèi)存中,而是從磁盤上一行行讀取數(shù)據(jù),逐個解析。

2、EasyExcel特點

Java領(lǐng)域解析、生成Excel比較有名的框架有Apache poi、jxl等。但他們都存在一個嚴(yán)重的問題就是非常的耗內(nèi)存。如果你的系統(tǒng)并發(fā)量不大的話可能還行,但是一旦并發(fā)上來后一定會OOM或者JVM頻繁的full gc。

EasyExcel采用一行一行的解析模式,并將一行的解析結(jié)果以觀察者的模式通知處理(AnalysisEventListener)

EasyExcel是一個基于Java的簡單、省內(nèi)存的讀寫Excel的開源項目。在盡可能節(jié)約內(nèi)存的情況下支持讀寫百M的Excel。

3、EasyExcel寫操作

3.1 pom中引入xml相關(guān)依賴

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>

3.2 創(chuàng)建實體類

設(shè)置表頭和添加的數(shù)據(jù)字段

@Data
public class User {
    //設(shè)置表頭名稱
    @ExcelProperty(value = "用戶編號")
    private int id;

    //設(shè)置表頭名稱
    @ExcelProperty(value = "用戶名稱")
    private String name;
}

3.3 實現(xiàn)寫操作

這里先簡單測試下

public class TestWrite {
    public static void main(String[] args) {
        //設(shè)置文件名稱和路徑
        String fileName="I:\\temp\\ggkt\\test.xlsx";
        //調(diào)用方法
        EasyExcel.write(fileName,User.class)
                .sheet("寫操作")
                .doWrite(data());
    }

    //循環(huán)設(shè)置要添加的數(shù)據(jù),最終封裝到list集合中
    private static List<User> data() {
        List<User> list = new ArrayList<User>();
        for (int i = 0; i < 10; i++) {
            User data = new User();
            data.setId(i);
            data.setName("lucy"+i);
            list.add(data);
        }
        return list;
    }
}

讀操作沒有任何問題。

4、EasyExcel讀操作

4.1 創(chuàng)建實體類

這里加上index屬性,index=0表示第一列,以此類推

@Data
public class User {
    //設(shè)置表頭名稱
    //設(shè)置列對應(yīng)的屬性
    @ExcelProperty(value = "用戶編號",index = 0)
    private int id;

    //設(shè)置表頭名稱
    //設(shè)置列對應(yīng)的屬性
    @ExcelProperty(value = "用戶名稱",index = 1)
    private String name;
}

4.2 創(chuàng)建讀取操作的監(jiān)聽器

package com.atguigu.excel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;

import java.util.Map;

public class ExcelListener extends AnalysisEventListener<User> {

    //一行一行讀取excel內(nèi)容,把每行內(nèi)容封裝到User對象中
    //從excel第二行還是讀取(第一行是表頭)
    @Override
    public void invoke(User user, AnalysisContext context) {
        System.out.println(user);
    }
    //讀取excel表頭信息
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表頭:"+headMap);

    }
    //讀取完成后執(zhí)行
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {

    }
}

4.3 實現(xiàn)讀操作

import com.alibaba.excel.EasyExcel;

public class TestRead {
    public static void main(String[] args) {
        //設(shè)置文件名稱和路徑
        String fileName="I:\\temp\\ggkt\\test.xlsx";
        //調(diào)用方法進(jìn)行讀操作
        EasyExcel.read(fileName,User.class,new ExcelListener())
                .sheet()
                .doRead();
    }
}

讀excel也沒有什么問題。

到此,excel的讀寫操作就完了,當(dāng)然這只是在測試類中寫的,我的業(yè)務(wù)是實現(xiàn)課程分類列表的導(dǎo)入和導(dǎo)出功能,就需要完善前后端的是實現(xiàn)了,業(yè)務(wù)代碼就不放出來了,要不就很繁瑣,大致思想跟上面是一樣的。

我的項目中實現(xiàn)效果如下:

點擊按鈕實現(xiàn)excel的導(dǎo)入和導(dǎo)出功能。

以上就是EasyExcel實現(xiàn)讀寫Excel文件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于EasyExcel讀寫Excel的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java實現(xiàn)九九乘法表的完整實例(對齊版)

    Java實現(xiàn)九九乘法表的完整實例(對齊版)

    這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)九九乘法表(對齊版)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SpringBoot+fileUpload獲取文件上傳進(jìn)度

    SpringBoot+fileUpload獲取文件上傳進(jìn)度

    這篇文章主要為大家詳細(xì)介紹了SpringBoot+fileUpload獲取文件上傳進(jìn)度,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • idea中安裝VisualVM監(jiān)控jvm的圖文教程

    idea中安裝VisualVM監(jiān)控jvm的圖文教程

    這篇文章主要介紹了idea中安裝VisualVM監(jiān)控jvm的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • MybatisPlus實現(xiàn)分頁查詢和動態(tài)SQL查詢的示例代碼

    MybatisPlus實現(xiàn)分頁查詢和動態(tài)SQL查詢的示例代碼

    本文主要介紹了MybatisPlus實現(xiàn)分頁查詢和動態(tài)SQL查詢的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • SpringBoot整合Mail輕松實現(xiàn)郵件自動推送功能

    SpringBoot整合Mail輕松實現(xiàn)郵件自動推送功能

    在項目中經(jīng)常會遇到SpringBoot推送消息的業(yè)務(wù),除了站內(nèi)推送通知,郵件推送也是一種常見的方式,本文小編就給大家介紹了SpringBoot整合Mail輕松實現(xiàn)郵件自動推送功能,需要的朋友可以參考下
    2024-12-12
  • java實現(xiàn)打磚塊游戲算法

    java實現(xiàn)打磚塊游戲算法

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)打磚塊游戲算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • JAVA8之函數(shù)式編程Function接口用法

    JAVA8之函數(shù)式編程Function接口用法

    這篇文章主要介紹了JAVA8之函數(shù)式編程Function接口用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • mybatis執(zhí)行錯誤但sql執(zhí)行正常問題

    mybatis執(zhí)行錯誤但sql執(zhí)行正常問題

    這篇文章主要介紹了mybatis執(zhí)行錯誤但sql執(zhí)行正常問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Javaweb使用getPart接收表單文件過程解析

    Javaweb使用getPart接收表單文件過程解析

    這篇文章主要介紹了Javaweb使用getPart接收表單文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot項目如何打war包問題詳解

    SpringBoot項目如何打war包問題詳解

    傳統(tǒng)的部署方式:將項目打成war包,放入tomcat的webapps目錄下面,啟動tomcat,即可訪問.文中有非常詳細(xì)的介紹,對正在學(xué)習(xí)springboot的小伙伴很有幫助,需要的朋友可以參考下
    2021-05-05

最新評論

元谋县| 巫山县| 沙雅县| 宁海县| 沐川县| 三明市| 鹰潭市| 南汇区| 昌平区| 保山市| 咸丰县| 丽水市| 渭南市| 美姑县| 邹平县| 白沙| 台山市| 绥化市| 聂荣县| 林西县| 和平县| 湘潭县| 定西市| 汾阳市| 新昌县| 蒙阴县| 永城市| 滨州市| 呼和浩特市| 远安县| 泰宁县| 普洱| 青铜峡市| 双鸭山市| 家居| 阿坝| 左云县| 武义县| 长顺县| 蛟河市| 新建县|