国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java 讀取 Excel 表格—— Easy Excel 基本使用

這篇具有很好參考價(jià)值的文章主要介紹了Java 讀取 Excel 表格—— Easy Excel 基本使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

兩種讀對(duì)象的方式

  1. 確定表頭:建立對(duì)象,和表頭形成映射關(guān)系。
  2. 不確定表頭:每一行數(shù)據(jù)映射為 Map<String, Object>,比如用戶自己上傳的表格。

兩種讀取模式

  1. 監(jiān)聽器:先創(chuàng)建監(jiān)聽器、在讀取文件時(shí)綁定監(jiān)聽器。單獨(dú)抽離處理邏輯,代碼清晰易于維護(hù);一條一條處理,適用于數(shù)據(jù)量大的場(chǎng)景。
  2. 同步讀:無需創(chuàng)建監(jiān)聽器,一次性獲取完整數(shù)據(jù)。方便簡(jiǎn)單,但是數(shù)據(jù)量大時(shí)會(huì)有等待時(shí)長(zhǎng),造成卡頓,也可能出現(xiàn)內(nèi)存溢出。

Easy Excel 基本使用

Easy Excel官網(wǎng)

  1. 導(dǎo)入依賴
        <!-- easy Excel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.1.0</version>
        </dependency>
  1. 需要讀取的類對(duì)象:
package com.heo.matchmatebackend.easyExcel;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

/**
 * 用戶表格信息
 */
@Data
public class TableUserInfo {
    /**
     * 用戶編號(hào)
     */
    @ExcelProperty("用戶編號(hào)") // 列名匹配(或者也可以用列數(shù) index=0 的方式進(jìn)行匹配第一列)
    private String userCode;

    /**
     * 用戶昵稱
     */
    @ExcelProperty("用戶昵稱")
    private String username;
}
  1. 讀取監(jiān)聽器
package com.heo.matchmatebackend.easyExcel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import lombok.extern.slf4j.Slf4j;

// 有個(gè)很重要的點(diǎn) TableListener 不能被spring管理,要每次讀取excel都要new,然后里面用到spring可以構(gòu)造方法傳進(jìn)去
@Slf4j
public class TableListener implements ReadListener<TableUserInfo> {

    /**
     * 這個(gè)每一條數(shù)據(jù)解析都會(huì)來調(diào)用
     *
     * @param data    one row value. Is is same as {@link AnalysisContext#readRowHolder()}
     * @param context
     */
    @Override
    public void invoke(TableUserInfo data, AnalysisContext context) {
        System.out.println(data);
    }

    /**
     * 所有數(shù)據(jù)解析完成了 都會(huì)來調(diào)用
     *
     * @param context
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        System.out.println("已解析完成");
    }

}
  1. 兩種讀取數(shù)據(jù)的方法
package com.heo.matchmatebackend.easyExcel;

import com.alibaba.excel.EasyExcel;

import java.util.List;

/**
 *  導(dǎo)入Excel,讀取數(shù)據(jù)
 */
public class ImportExcel {
    /**
     * 讀取數(shù)據(jù)
     */
    public static void main(String[] args) {
        // 寫法1:JDK8+ ,不用額外寫一個(gè)DemoDataListener
        // since: 3.0.0-beta1
        // Excel數(shù)據(jù)文件放在自己電腦上,能夠找到的路徑
        String fileName = "C:\\Codefield\\MY_PROJECT\\match-mate-backend\\src\\main\\resources\\testExcel.xlsx";
//          readByListener(fileName);
        synchronousRead(fileName);
    }
    /**
     * 監(jiān)聽器讀取
     * @param fileName
     */
    public static void readByListener(String fileName) {
        // 這里 需要指定讀用哪個(gè)class去讀,然后讀取第一個(gè)sheet 文件流會(huì)自動(dòng)關(guān)閉
        // 這里每次會(huì)讀取100條數(shù)據(jù) 然后返回過來 直接調(diào)用使用數(shù)據(jù)就行
        EasyExcel.read(fileName, TableUserInfo.class, new TableListener()).sheet().doRead();
    }

    /**
     * 同步讀
     * 同步的返回,不推薦使用,如果數(shù)據(jù)量大會(huì)把數(shù)據(jù)放到內(nèi)存里面,且響應(yīng)時(shí)間太久
     */
    public static void synchronousRead(String fileName) {
        // 這里 需要指定讀用哪個(gè)class去讀,然后讀取第一個(gè)sheet 同步讀取會(huì)自動(dòng)finish
        List<TableUserInfo> list = EasyExcel.read(fileName).head(TableUserInfo.class).sheet().doReadSync();
        for (TableUserInfo tableUserInfo : list) {
            System.out.println(tableUserInfo);
        }

    }
}

Java 讀取 Excel 表格—— Easy Excel 基本使用,java,excel,開發(fā)語言

Java 讀取 Excel 表格—— Easy Excel 基本使用,java,excel,開發(fā)語言

  1. 實(shí)操案例
package com.heo.matchmatebackend.easyExcel;

import com.alibaba.excel.EasyExcel;
import org.apache.commons.lang3.StringUtils;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class ImportUser {
    public static void main(String[] args) {
        //Excel數(shù)據(jù)文件放在自己電腦上,能夠找到的路徑
        String fileName = "C:\\Codefield\\MY_PROJECT\\match-mate-backend\\src\\main\\resources\\testExcel.xlsx";
        // 這里 需要指定讀用哪個(gè)class去讀,然后讀取第一個(gè)sheet 同步讀取會(huì)自動(dòng)finish
        List<TableUserInfo> userInfoList =
                EasyExcel.read(fileName).head(TableUserInfo.class).sheet().doReadSync();
        System.out.println("總數(shù) = " + userInfoList.size());
        // 過濾username為空的信息,并分組為 map<列名,列數(shù)據(jù)的list>
        Map<String, List<TableUserInfo>> listMap =
                userInfoList.stream()
                        .filter(userInfo -> StringUtils.isNotEmpty(userInfo.getUsername()))
                        .collect(Collectors.groupingBy(TableUserInfo::getUsername));
        for (Map.Entry<String, List<TableUserInfo>> stringListEntry : listMap.entrySet()) {
            if (stringListEntry.getValue().size() > 1) {
                System.out.println("username = " + stringListEntry.getKey());
//                System.out.println("1");
            }
        }
        System.out.println("不重復(fù)昵稱數(shù) = " + listMap.keySet().size());
    }
}

Java 讀取 Excel 表格—— Easy Excel 基本使用,java,excel,開發(fā)語言

Java 讀取 Excel 表格—— Easy Excel 基本使用,java,excel,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-810844.html

到了這里,關(guān)于Java 讀取 Excel 表格—— Easy Excel 基本使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java中使用JXLS工具類導(dǎo)出復(fù)雜Excel表格

    Java中使用JXLS工具類導(dǎo)出復(fù)雜Excel表格

    前言 ? ?在項(xiàng)目開發(fā)中,我們會(huì)遇到各種文件導(dǎo)出的開發(fā)場(chǎng)景,但是這種情況并都不常用,于是本人將自己工作中所用的代碼封裝成工具類,旨在記錄工具類使用方法和技術(shù)分享。 一、Jxls的簡(jiǎn)介 ? ?Jxls是一個(gè)簡(jiǎn)單的、輕量級(jí)的excel導(dǎo)出庫(kù),使用特定的標(biāo)記在excel模板文件中來

    2024年02月03日
    瀏覽(24)
  • Java使用POI讀取Excel名稱管理器

    Java使用POI讀取Excel名稱管理器

    本文主要介紹如何使用poi讀取到Excel的名稱管理器中的內(nèi)容。并且定位到單元格。 在企業(yè)的開發(fā)中可能需要通過名稱管理器定位到某個(gè)單元格,然后在單元格上生成簽名。 Java:Jdk1.8 poi:5.2.3 maven依賴(pom.xml): poi的WorkBook有個(gè)getNames方法可以讀到名稱。 Excel的名稱在下圖中新建

    2024年02月14日
    瀏覽(30)
  • Java 使用hutool工具進(jìn)行導(dǎo)出導(dǎo)入excel表格(代碼很簡(jiǎn)單)

    Java 使用hutool工具進(jìn)行導(dǎo)出導(dǎo)入excel表格(代碼很簡(jiǎn)單)

    創(chuàng)建一個(gè)Controller進(jìn)行測(cè)試?

    2024年02月07日
    瀏覽(24)
  • 在Django中使用xlrd讀取excel表格數(shù)據(jù)

    在Django中使用xlrd讀取excel表格數(shù)據(jù)

    目錄 方法一:按行讀取 方法二:按表頭與表數(shù)據(jù)一一對(duì)應(yīng)的關(guān)系 方法三:按列的方式讀取 之前有說到如何在Django中讀取數(shù)據(jù)庫(kù)數(shù)據(jù)寫入到excel中?今天來說說如何讀取excel中的數(shù)據(jù),(讀取后就可以寫入到數(shù)據(jù)庫(kù)中了)??????? 開始前需要安裝xlrd模塊 pip install -i ht

    2024年02月13日
    瀏覽(48)
  • 一種使用Java的快速將Web中表格轉(zhuǎn)換成Excel的方法

    一種使用Java的快速將Web中表格轉(zhuǎn)換成Excel的方法

    ????????隨著后疫情時(shí)代的到來,在過去的2022年,全國(guó)的經(jīng)濟(jì)情況,想必是很多學(xué)者和研究對(duì)象都非常關(guān)心的事。而這些數(shù)據(jù)在國(guó)家統(tǒng)計(jì)局網(wǎng)站上都有相應(yīng)的記錄。通過分析這些數(shù)據(jù),可以從某一個(gè)角度來驗(yàn)證和觀察當(dāng)下的經(jīng)濟(jì)情況。 ????????全國(guó)共計(jì)有1279個(gè)縣級(jí)單

    2024年02月06日
    瀏覽(22)
  • Java中Excel文件解析(POI簡(jiǎn)介及基本使用)

    在Java技術(shù)生態(tài)圈中,可以進(jìn)行Excel文件處理的主流技術(shù)包括: Apache POI 、 JXL 、 Alibaba EasyExcel 等。 其中各個(gè)技術(shù)都有最適合的場(chǎng)景 Apache POI 基于 DOM 方式進(jìn)行解析,將文件直接加載內(nèi)存,所以速度較快,適合 Excel 文件數(shù)據(jù)量不大的應(yīng)用場(chǎng)景。 JXL 只支持Excel 2003以下版本,所以

    2024年02月08日
    瀏覽(36)
  • 自動(dòng)化數(shù)據(jù)驅(qū)動(dòng)|Easy POI讀取接口測(cè)試用例的excel

    自動(dòng)化數(shù)據(jù)驅(qū)動(dòng)|Easy POI讀取接口測(cè)試用例的excel

    在做的接口自動(dòng)化測(cè)試中,把測(cè)試用例維護(hù)在excel表格中,通過Easy POI把用例中的行轉(zhuǎn)成實(shí)體類對(duì)象,再通過testNG的@DataProvider注解把測(cè)試用例數(shù)據(jù)傳遞給測(cè)試方法執(zhí)行用例。 2.1 用例表格示例 2.2 實(shí)體類設(shè)計(jì) easy poi: 通過@Excel屬性能夠和excel的表頭映射上去 ??值的注意:實(shí)體

    2024年01月23日
    瀏覽(21)
  • java處理Excel表格(EasyExcel)

    1.EasyExcel特點(diǎn) Java領(lǐng)域解析、生成Excel比較有名的框架有Apache poi、jxl等。但他們都存在一個(gè)嚴(yán)重的問題就是非常的耗內(nèi)存。如果你的系統(tǒng)并發(fā)量不大的話可能還行,但是一旦并發(fā)上來后一定會(huì)OOM或者JVM頻繁的full gc。 EasyExcel是阿里巴巴開源的一個(gè)excel處理框架,以使用簡(jiǎn)單、節(jié)

    2024年02月15日
    瀏覽(22)
  • Java Poi導(dǎo)出Excel表格詳解

    Java Poi導(dǎo)出Excel表格詳解

    一、導(dǎo)出下面的表格 二、流程詳解 ??????? 1、導(dǎo)出excel需要先將數(shù)據(jù)準(zhǔn)備好 ??????? 2、創(chuàng)建工作傅對(duì)象SXSSFWorkbook ??????? 3、使用工作傅對(duì)象創(chuàng)建sheet對(duì)象(工作頁(yè)) ??????? 4、使用sheet對(duì)象創(chuàng)建行對(duì)象row(行對(duì)象) ??????? 5、使用row對(duì)象創(chuàng)建cell對(duì)象(單元格

    2024年02月10日
    瀏覽(28)
  • Java 讀取excel文件

    先導(dǎo)入依賴: 1、獲取想要上傳excel文件的路徑 2、獲得路徑后,通過路徑定位生成數(shù)據(jù)流,使用FileInputStream方法讀取路徑對(duì)應(yīng)文件的原始字節(jié)流。 3、使用ExcelUtils工具類讀取 字節(jié)流 + 路徑。 4、ExcelUtils工具類對(duì)數(shù)據(jù)進(jìn)行處理,因?yàn)楸砀裼行泻土?,所以處理完?shù)據(jù)使用二維集合

    2024年02月04日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包