1,首先,前端发送MultipartFile类型文件,后端接收

2,分别创建多个ImportParams对象(easypoi),对应工作蒲

注意:pom中 要有相对应的配置

<!-- easypoi -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
startSheetIndex 开始读取的sheet位置,默认为0
startRows 字段真正值和列标题之间的距离 默认0
titleRows 表格标题行数,默认0
            ImportParams sheet1 = new ImportParams();
sheet1.setStartSheetIndex(0);
sheet1.setStartRows(0);
sheet1.setTitleRows(0); ImportParams sheet2 = new ImportParams();
sheet2.setStartSheetIndex(1);
sheet2.setStartRows(0);
sheet2.setTitleRows(0); ImportParams sheet3 = new ImportParams();
sheet3.setStartSheetIndex(2);
sheet3.setStartRows(0);
sheet3.setTitleRows(1); ImportParams sheet4 = new ImportParams();
sheet4.setStartSheetIndex(3);
sheet4.setStartRows(0);
sheet4.setTitleRows(1);

3,使用easypoi自带的工具类ExcelImportUtil,将数据读取到集合中

            List<MaterialLibPO> materialList = ExcelImportUtil.importExcel(excel.getInputStream(), MaterialLibPO.class, sheet1);
List<BigMaterialPO> largeList = ExcelImportUtil.importExcel(excel.getInputStream(), BigMaterialPO.class, sheet2);
List<RoutineMaterialPO> conventionalList = ExcelImportUtil.importExcel(excel.getInputStream(), RoutineMaterialPO.class, sheet3);
List<ToolLibPO> toolLibList = ExcelImportUtil.importExcel(excel.getInputStream(), ToolLibPO.class, sheet4);

  注意:对应的实体类要加 @Excel(name = "对应名称") 这里以MaterialLibPO为实例

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MaterialLibPO implements Serializable {
/**
* 唯一标识
*/
@Excel(name = "抢修物资库UUID")
private String id; /**
* 地市id
*/ private String ssdsid; /**
* 区县id
*/
private String ssqxid; /**
* 供电单位id
*/ private String ssgddwid; /**
* 抢修站id
*/
@Excel(name = "抢修站ID")
private String qxzid; /**
* 物资库名称
*/
@Excel(name = "物资库名称(抢修站名+物资库)")
private String wzkmc; /**
* 移动库个数
*/
@Excel(name = "移动库个数(四轮抢修车辆数)")
private String ydkgs; /**
* 库存状态
*/
@Excel(name = "库存状态")
private String kczt; /**
* 经度
*/
private String jd; /**
* 纬度
*/
private String wd;
/**
* 所属供电单位名称
*/
@Excel(name = "供电单位(市县公司)")
private String ssgddwmc;
/**
* 所属地市名称
*/
@Excel(name = "地市")
private String ssdsmc;
/**
* 抢修站名称
*/
@Excel(name = "抢修站名称(附表抢修站标准名称)")
private String qxzmc; private static final long serialVersionUID = 1L;
}

4,获取到list集合后,就可以对数据进行处理或者存储了

java-poi 批量导入excel数据的更多相关文章

  1. java 使用POI批量导入excel数据

    一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...

  2. springboot批量导入excel数据

    1 背景 小白今天闲着没事,在公司摸鱼,以为今天有事无聊的一天,突然上头说小子,今天实现一下批量导入Excel数据吧,当时我的内心是拒绝的,然后默默打开idea. 2 介绍 2.1 框架 java本身 ...

  3. MySQL批量导入Excel数据

    MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名 ...

  4. poi批量导入excel文件

    package com.practice.util; import java.io.File; import java.io.FileInputStream; import java.io.FileN ...

  5. [Java] 高效快速导入EXCEL数据

    需求1.高效率的以excel表格的方式导入多条数据.2.以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入. 分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存 ...

  6. 如何批量导入excel数据至数据库(MySql)--工具phpMyAdmin

    之前由于数据储存使用excel保存了所有数据,经过初步数据筛选,数据量近4000条.一条一条录入数据库显然是不可行的.以下是我所操作的步骤: 1.只保留excel的数据部分,去除第一行的具体说明 2. ...

  7. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  8. java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...

  9. java的poi技术读取Excel数据

    这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...

随机推荐

  1. POJ 1664 放苹果 (递推思想)

    原题链接:http://poj.org/problem?id=1664 思路:苹果m个,盘子n个.假设 f ( m , n ) 代表 m 个苹果,n个盘子有 f ( m , n ) 种放法. 根据 n ...

  2. 【采坑小计】prometheus的remote write协议遇到的问题

    没有读懂源码以前,无脑试错总是效率很低的! 1.thanos receiver报store locally for endpoint : conflict 接口返回的日志: store locally ...

  3. 乡亲们,我们创建了 Dapr 中文交流频道

    我们创建了 Dapr 中文交流 QQ 频道,欢迎大家加入!加入方式在文章最后一节. 为什么要创建频道? 解决什么问题 专业性,"你可以在我们群里面钓鱼,因为都是水" 你肯定加过非常 ...

  4. pytest文档7-计算单元测试代码覆盖率(pytest-cov)

    pytest-cov 先命令行安装 pytest-cov 2.10.1版本 pip install pytest-cov==2.10.1 环境要求:1.python3.6.6 版本备注:其它版本没试过 ...

  5. gin中XML/JSON/YAML/ProtoBuf 渲染

    package main import ( "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/testdata/p ...

  6. 什么是iptables?

    目录 一:iptables 1.iptables简介 2.什么是防火墙? 3.防火墙种类 二:iptables基本介绍 1.解析内容 三:iptables流程(讲解) 1.流入本机 2.解析(流入本机 ...

  7. linux中uniq命令全面解析

    目录 一 :uniq作用 二:uniq格式 1.参数 2.参数案例解析: linuxuniq简介 Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用. u ...

  8. linux文件压缩与文件夹压缩(打包)

    目录 一:linux文件压缩 1.linux常见的压缩包有哪些? 2.bzip压缩(文件) 二:打包(文件夹压缩) 1.打包命令 2.参数 3.参数解析(实战) 4.注意事项 简介: win中的压缩包 ...

  9. 字节跳动的一道python面试题

    #!/usr/bin/python #coding=utf-8 #好好学习,天天向上 lst = ['hongkong','xiantyk','chinat','guangdong','z'] lst ...

  10. ☕【Java深层系列】「并发编程系列」深入分析和研究MappedByteBuffer的实现原理和开发指南

    前言介绍 在Java编程语言中,操作文件IO的时候,通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于Mapp ...