首页 > 其他分享 >使用 EasyExcel 进行数据解析

使用 EasyExcel 进行数据解析

时间:2024-04-30 11:46:29浏览次数:24  
标签:info get EasyExcel void import LOGGER 解析 数据 public

一、添加pom.xml 导入相关依赖

     <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.12</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

 

二、EasyExcelUtil 工具类

package com.example.fengqing.EasyExcel.util;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Excel表格数据解析工具类
 * @author FengQing
 * @program fengqing
 * @description
 * @date 2024/04/23
 */
public class EasyExcelUtil extends AnalysisEventListener<Map<Integer, String>> {
    private static final Logger LOGGER = LoggerFactory.getLogger(EasyExcelUtil.class);
    List<Map<Integer, String>> list = new ArrayList<>();

    @Override
    public void invoke(Map<Integer, String> data, AnalysisContext context) {
        LOGGER.info("解析到的数据: {}", data);
        list.add(data);
    }

    @Override
    public void invokeHeadMap(Map headMap, AnalysisContext context) {
        LOGGER.info("解析到的表头数据: {}", headMap);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        saveData();
    }

    /**
     * 如果有必要,存储到数据库
     */
    private void saveData() {
        LOGGER.info("{}条数据,开始存储数据库!", list.size());
        LOGGER.info("存储数据库成功!");
    }

    public List<Map<Integer, String>> getTargetColumnData(){
        return list;
    }

    @Test
    public void contextLoads() {
        String fileName = "D:\\赤峰正太劳务派遣有限公司_A51940_38774.xlsx"; // Excel文件路径
        // 这里 只要,然后读取第一个sheet 同步读取会自动finish
        EasyExcelUtil listener = new EasyExcelUtil();
        EasyExcel.read(fileName, listener).sheet().doRead();
        List<Map<Integer, String>> targetColumnData = listener.getTargetColumnData();

        List<String> addList = new ArrayList<>();
        targetColumnData.forEach(v ->{
            LOGGER.info("姓名: {}", v.get(0));
            LOGGER.info("身份证: {}", v.get(1));
            LOGGER.info("开始时间: {}", v.get(2));
            LOGGER.info("结束时间: {}", v.get(3));
            addList.add(v.get(1));
        });
    }
}

 

标签:info,get,EasyExcel,void,import,LOGGER,解析,数据,public
From: https://www.cnblogs.com/springclout/p/18167719

相关文章

  • 2024 开源数据工程生态系统全景图
    2024开源数据工程生态系统全景图(转)简介​ 虽然生成式人工智能和ChatGPT带来的沸沸扬扬的炒作令科技界为之一振,但在数据工程领域,2023年仍然是一个令人振奋和充满活力的一年,数据工程生态系统变得更加多样化和复杂化,系统中的所有层面都在不断创新和演进。​ 随着各种开源工具、......
  • 使用EF框架的优化(三)-大量数据查询
    在C#中使用EF查询数据库数据,将结果直接转换为List是一个常见的做法。这样做的好处是方便快捷,可以方便地对结果集进行操作和遍历。但是也存在一些问题:1.性能问题:将查询结果直接转换为List会加载整个结果集到内存中,如果查询结果较大,可能会导致性能问题和内存占用过高。2.内存管......
  • JDBC与各数据库产品连接的驱动及URL示例
    数据库驱动类JDBC连接Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@//127.0.0.1:1521/SchemaNameSQLServercom.microsoft.sqlserver.jdbc.SQLServerDrivernet.sourceforge.jtds.jdbc.Driverjdbc:sqlserver://127.0.0.1:1433;databa......
  • mu38中ts 文件伪装成png 文件解析~
    正常的文件m3u8应该这样子但是有的却是这个样子于是百度一波我个人任务合理的......
  • openGauss 创建和管理数据库
    创建和管理数据库前提条件用户必须拥有数据库创建的权限或者是数据库的系统管理员权限才能创建数据库,赋予创建数据库的权限参见管理用户及权限。背景信息初始时,openGauss包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。postgres默认的兼容数据库......
  • openGauss 归档账本数据库
    归档账本数据库前提条件系统中需要有审计管理员或者具有审计管理员权限的角色。数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。数据库已经正确配置审计文件的存储路径audit_directory。背景信息账本数据库归档......
  • openGauss 管理数据库安全
    管理数据库安全客户端接入认证管理用户及权限设置数据库审计设置账本数据库详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • openGauss 更新表中数据
    更新表中数据修改已经存储在数据库中数据的行为叫做更新。用户可以更新单独一行、所有行或者指定的部分行。还可以独立更新每个字段,而其他字段则不受影响。使用UPDATE命令更新现有行,需要提供以下三种信息:表的名称和要更新的字段名字段的新值要更新哪些行SQL通常不会为数据......
  • 准备数据
    (一)准备示例数据加载microeco包:library(microeco)加载示例数据集:data(sample_info_16S)data(otu_table_16S)data(taxonomy_table_16S)data(phylo_tree_16S)data(env_data_16S)这些行代码加载了一组示例数据,包括:sample_info_16S:样本信息表,一般包含每个样本的元数据。......
  • 使用PowerDesigner连接数据库并反向工程生成所有表及关系
    配置对数据库的JDBC连接时,总是提示连接失败!也没有任何其他信息,查阅网上资料并实际验证,按如下步骤可以成功:1、因为PowerDesigner是32位的程序,需要使用x86-32位版本的JDK2、配置PowerDesigner-》Tools-》GeneralOptions-》variables ,配置jar、java等路径配置为32位JDK3、......