首页 > 其他分享 >easyExcel导入类

easyExcel导入类

时间:2024-04-05 19:55:26浏览次数:26  
标签:String easyExcel private startRow 导入 import public

一、基础类描述

  1. ExcelImport(导入工具类)
  2. ExcelRow(导入实体类)
  3. Consumer(函数参数)

二、代码

1、ExcelImport


import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import org.itxl.common.utils.Consumer;

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

/**
 * @authar liuWei
 * @ @date 2024/2/1
 * 导入
 */
public abstract class ExcelImport extends AnalysisEventListener<ExcelRow> implements Consumer<Void> {

    private int startRow = 1;

    /**
     * 一直执行最大LIST数量
     */
    private final static int ONE_EXECUTE_LIST_SIZE = 1000;

    private final List<ExcelRow> data = new ArrayList<>();

    public ExcelImport(int startRow){
        if (startRow < 1){
            //todo 报错,导入开始行必须不能小于1
        }
        this.startRow = startRow;
    }

    public ExcelImport(){

    }
    @Override
    public void invoke(ExcelRow excelRow, AnalysisContext analysisContext) {
        if (analysisContext.readRowHolder().getRowIndex() < startRow){
            return;
        }
        data.add(excelRow);
        if (data.size() >= ONE_EXECUTE_LIST_SIZE){
            accept();
            data.clear();
        }
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        accept();
        data.clear();
    }

    @Override
    public Void accept() {
        return andThen();
    }
}

2、ExcelRow

import lombok.Data;

/**
 * @authar liuWei
 * @ @date 2024/2/1
 * 导入映射实体
 */
@Data
public class ExcelRow {
    private String col1;
    private String col2;
    private String col3;
    private String col4;
    private String col5;
    private String col6;
    private String col7;
    private String col8;
    private String col9;
    private String col10;
    private String col11;
    private String col12;
    private String col13;
    private String col14;
    private String col15;
    private String col16;
    private String col17;
    private String col18;
    private String col19;
    private String col20;
    private String col21;
    private String col22;
    private String col23;
    private String col24;
    private String col25;
    private String col26;
    private String col27;
    private String col28;
    private String col29;
    private String col30;
    private String col31;
    private String col32;
    private String col33;
    private String col34;
    private String col35;
    private String col36;
    private String col37;
    private String col38;
    private String col39;
    private String col40;
    private String col41;
    private String col42;
    private String col43;
    private String col44;
    private String col45;
    private String col46;
    private String col47;
    private String col48;
    private String col49;
    private String col50;
    private String col51;
    private String col52;
    private String col53;
    private String col54;
    private String col55;
    private String col56;
    private String col57;
    private String col58;
    private String col59;
    private String col60;
    private String col61;
    private String col62;
    private String col63;
    private String col64;
    private String col65;
    private String col66;
    private String col67;
    private String col68;
    private String col69;
    private String col70;
    private String col71;
    private String col72;
    private String col73;
    private String col74;
    private String col75;
    private String col76;
    private String col77;
    private String col78;
    private String col79;
    private String col80;
    private String col81;
    private String col82;
    private String col83;
    private String col84;
    private String col85;
    private String col86;
    private String col87;
    private String col88;
    private String col89;
    private String col90;
    private String col91;
    private String col92;
    private String col93;
    private String col94;
    private String col95;
    private String col96;
    private String col97;
    private String col98;
    private String col99;
    private String col100;
}

3、Consumer


/**
 * @authar  liuWei
 * 通用函数参数
 * @param <T>
 */
public interface Consumer<T>{
    /**
     * 方法实现
     * @return T
     */
    T andThen();

    /**
     * 方法执行
     * @return T
     */
    T accept();
}

标签:String,easyExcel,private,startRow,导入,import,public
From: https://www.cnblogs.com/1024-lzy/p/18116109

相关文章

  • easyExcel通用导出(非注解,多线程)
    1、基础类描述ExcelWriter(导出工具类)Query(通用查询)Consumer(函数参数)SpringBeanUtil(获取bean)2、代码ExcelWriterimportcn.hutool.core.collection.CollUtil;importcn.hutool.core.collection.ListUtil;importcn.hutool.core.util.PageUtil;importcn.hutool.core.u......
  • React 导入 less 及其注意事项
    React导入less及其注意事项首先我们肯定要下载一下less,这里我是用vite构建的react项目,由于vite已经内置了对less配置,所以下载完直接导入就行>npmiless这时候我们就可以十分愉悦地使用less了吗?下面请看一下一个小例子,这里我创建了两个tsx模块,分别......
  • 盘点一个dbeaver导入csv文件到sql server报错的一个问题
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【金光灿灿】问了一个dbeaver导入csv文件到sqlserver报错的一个问题,问题如下:我在使用dbeaver导入csv文件到sqlserver时一直出现Can'tparsenumericvalue[B02010ZZZ]usingformatter这样的报错二、实现过程......
  • 如何将之前编辑的文章HTML源代码导入到TinyMCE编辑器中
    如何将之前编辑的文章HTML源代码导入到TinyMCE编辑器中 如果你想用TinyMCE来修改你之前写的文章那么你需要将源代码放到TinyMCE中,如果服务器把HTML源码发给我们可是我们应该怎样调用?方法为使用 tinymce.activeEditor.setContent()这个函数具体用法为:tinymce.activeEdito......
  • Maven项目,本地jar包导入手动导入到Maven库中 ,也可以直接将jar包放到lib文件夹,右键 Add
    Maven项目,本地jar包导入手动导入到Maven库中,也可以直接将jar包放到lib文件夹,右键AddAsLibrary当你的项目,由于网络或者环境这些问题,无法从maven中央仓库更新jar包到本地的时候,可以尝试下面方法,手动添加jar包到Maven仓库;方法一(推荐):1、需要先拿到你的jar包,copy到本地。例如我......
  • 从github下载的jar包导入本地maven
    从github下载的jar包导入本地maven1.在github上把代码clone下来2.把下载的代码打成jar包(1)在编译环境打开代码(2)点击file-ProjectStructure...(3)点击Artifacts-加号-JAR-Frommoduleswithdependencies..点击之后会进入这个页面(4)选择copyto...(5)选择src的目录下......
  • import 模块导入
    ★方式一:fromxximportyy导入方式frominfoimportredis_store使用说明【理解】:相当于在本地定义一个变量redis_store指向info模块中redis_store的值,对本地的redis_stone直接进行赋值,只会修改本地变量redis_store的指向,并不会修改info模块中redis_store的值;这......
  • 数据导入,绝对的干活
    有很多项目都存在数据导入的情况,我们项目其中一个数据导入是门店信息导入,大家可以借鉴参考一下1.得有一张记录文件导入信息的表,首先是重点几个字段,文件的id,文件的类型,文件的状态,这三点是最关键的(其实应该还有一个文件存放的路径,但我们项目里是采取拼接的方法将其更新到主键),还有......
  • tidb-逻辑备份(6)-lightning导入工具的部署、使用
    一、Tidblightning的部署方法一、1.联网安装[root@tidb01~]#tiupinstalltidb-lightning方法二(tidb-community-toolkit)1.下载包(https://docs.pingcap.com/zh/tidb/v6.1/download-ecosystem-tools),解压获取:wgethttps://download.pingcap.org/tidb-communi......
  • 【Unity音游制作】你玩过节奏大师吗?(Koreographe插件导入游戏主体)【一】
    ......