java-poi 批量导入excel数据
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数据的更多相关文章
- java 使用POI批量导入excel数据
一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...
- springboot批量导入excel数据
1 背景 小白今天闲着没事,在公司摸鱼,以为今天有事无聊的一天,突然上头说小子,今天实现一下批量导入Excel数据吧,当时我的内心是拒绝的,然后默默打开idea. 2 介绍 2.1 框架 java本身 ...
- MySQL批量导入Excel数据
MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名 ...
- poi批量导入excel文件
package com.practice.util; import java.io.File; import java.io.FileInputStream; import java.io.FileN ...
- [Java] 高效快速导入EXCEL数据
需求1.高效率的以excel表格的方式导入多条数据.2.以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入. 分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存 ...
- 如何批量导入excel数据至数据库(MySql)--工具phpMyAdmin
之前由于数据储存使用excel保存了所有数据,经过初步数据筛选,数据量近4000条.一条一条录入数据库显然是不可行的.以下是我所操作的步骤: 1.只保留excel的数据部分,去除第一行的具体说明 2. ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- java的poi技术读取Excel数据到MySQL
这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...
- java的poi技术读取Excel数据
这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...
随机推荐
- OSI/RM体系结构
OSI/RM体系结构是第一个标准化的计算机网络体系结构. 它是针对广域网通信(也就是不同网络之间的通信)进行设计 的,将整个网络通信的功能划分为七个层次,由低到高分别是物理层(Physical L ...
- spring 事务传播性
一.什么是事务传播性 大白话讲就是,方法之间互相调用的时候,事务如何传播,比如A()调用B(),B()的事务是和A()共用一个事务(失败一起提交)? 还是新事务(两者事务互不影响)?,还是说B()不需 ...
- 【刷题-PAT】A1119 Pre- and Post-order Traversals (30 分)
1119 Pre- and Post-order Traversals (30 分) Suppose that all the keys in a binary tree are distinct p ...
- 1.IO流
1.组成部分 File.FileInputStream.FileOutStream.FileWriter.FileReader 2.File pathSeparatorChar ; separator ...
- C++11之future(二)
如果有两个线程,其中一个线程想要获取另一个线程的返回值,该怎么办? 于是接下来要谈的package_task就是为了解决这个问题而诞生的. // ConsoleApplication5.cpp : 定 ...
- golang中的原子操作atomic包
1. 概念 原子操作 atomic 包 加锁操作涉及到内核态的上下文切换,比较耗时,代价高, 针对基本数据类型我们还可以使用原子操作来保证并发的安全, 因为原子操作是go语言提供的方法,我们在用户态就 ...
- Linux下的ssh、scala、spark配置
注:笔记旨在记录,配置方式每个人多少有点不同,但大同小异,以下是个人爱好的配置方式. 目录 一.配置jdk 二.配置ssh 三.配置hadoop 四.配置scala 五.配置spark 平台:win1 ...
- java接口应用
1 package face_09; 2 /* 3 * 笔记本电脑使用. 4 * 为了扩展笔记本的功能,但日后出现什么功能设备不知道. 5 * 6 * 定义了一个规则,只要日后出现的设备都符合这个规则 ...
- react 配置使用less后缀文件
//安装less less less-loader npm install less less-loader --save-dev 安装完成后,在项目中的config目录下找到webpack.conf ...
- [USACO18DEC]Sort It Out P
初看本题毫无思路,只能从特殊的 \(K = 1\) 出发. 但是直接考虑构造一组字典序最小的方案还是不好构造,可以考虑先手玩一下样例.通过自己手玩的样例可以发现,貌似没有被选出来的数在原排列中都是递增 ...