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 ...
随机推荐
- Underscore.js 1.3.3 源码分析收藏
Underscore是一个提供许多函数编程功能的库,里面包含了你期待(在Prototype.js和Ruby中)的许多功能.但是没有扩展任何内置的Javascript对象,也就是说它没有扩展任何内置对象 ...
- MASA Framework - 整体设计思路
源起 年初我们在找一款框架,希望它有如下几个特点: 学习成本低 只需要学.Net每年主推的技术栈和业务特性必须支持的中间件,给开发同学减负,只需要专注业务就好 个人见解:一款好用的框架应该是补充,而不 ...
- 智能集成接口:I3 ISA-95 的应用
介绍 多年来,使用基于制造运营管理 (MOM) 的应用程序的制造 IT 顾问试图说服制造商这些类型的应用的高价值.实时 MOM 解决方案是唯一一组能够精确优化工厂日常运营的 IT 应用程序,可为其可用 ...
- MATLAB的基识(整理)
%正弦函数在MATLAB中如何实现%1.sin(45°)注意:参数值需要用"弧度"去定义>>x=sin(45*pi/180);%2.MATLAB中注意:开方-sqrt( ...
- Solon 开发
Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...
- Sentry 开发者贡献指南 - 配置 PyCharm
概述 如果您使用 PyCharm 进行开发,则需要配置一些内容才能运行和调试. 本文档描述了一些对 sentry 开发有用的配置 配置 Python 解释器:(确保它是 venv 解释器)例如 ~/v ...
- 带你玩转Flink流批一体分布式实时处理引擎
摘要:Apache Flink是为分布式.高性能的流处理应用程序打造的开源流处理框架. 本文分享自华为云社区<[云驻共创]手把手教你玩转Flink流批一体分布式实时处理引擎>,作者: 萌兔 ...
- 【Java】多线程入门
Java多线程学习(入门) 前言 目前对于线程的了解仅仅停留在学习python的threading库,很多线程的概念没有真正弄清楚,所以选择来系统性的学习多线程.那么这次选择的是Java的多线程学习, ...
- 神坑!为什么prometheus的pushgateway不能对上报的counter进行累加?
部署了一个prometheus的pushgateway,然后两次对其发送counter类型的数据: #第一次发送 curl -X POST -d '# TYPE my_first_metric_ahf ...
- VAE变分自编码器
我在学习VAE的时候遇到了很多问题,很多博客写的不太好理解,因此将很多内容重新进行了整合. 我自己的学习路线是先学EM算法再看的变分推断,最后学VAE,自我感觉这个线路比较好理解. 一.首先我们来宏观 ...