导入Excel数据【EasyPoi实战系列】- 第480篇

历史文章(文章累计480+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

【EasyPoi实战系列】Spring Boot使用EasyPoi动态控制导出的列 - 第471篇

100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇

导出下拉列表的两种小技巧【EasyPoi实战系列】- 第473篇

数据脱敏/换行/枚举的处理【EasyPoi实战系列】- 第474篇

模板文件导出Excel【EasyPoi实战系列】- 第478篇

Excel的Html预览和html转Excel【EasyPoi实战系列】- 第479篇

悟纤:师傅,你咋回事?你这最近讲的都是导出数据,不讲讲导入吗?

师傅:有导出就有导入呀,这个必须的讲呢。

悟纤:那导出讲了这么多节,应该差不多了。

师傅:导出可以先告一段落了。这节就要来和大家讲讲导入的内容。

悟纤:千呼万唤始出来,犹抱琵琶半遮面。师傅你就快点吧,我等的花都谢了。

师傅:来了,来了,开讲。

导读

Hi,大家好,我是悟纤

我就是我,不一样的烟火。我就是我,与众不同的小苹果。

在前面的小节中,主要是介绍了Excel的导出实现,既然有导出就有导入,这一节就来看看。

👇🏻👇🏻👇🏻EasyPoi实战系列

01.《【EasyPoi实战系列】Spring Boot集成EasyPoi - 第467篇》

02.《【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更漂亮以及图片的导出 - 第468篇》

03.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现一对多的导出 - 第469篇》

04.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现多Sheet导出 - 第470篇》

05.《【EasyPoi实战系列】Spring Boot使用EasyPoi动态控制导出的列 - 第471篇》

06.《100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇》

07.《导出下拉列表的两种小技巧【EasyPoi实战系列】- 第473篇》

08.《数据脱敏/换行/枚举的处理【EasyPoi实战系列】- 第474篇》

09.《模板文件导出Excel【EasyPoi实战系列】- 第478篇》

一、导入Excel数据原理

先来看下导入整体要解决的问题:

(1)在SpringBoot中如何接收文件流:

使用MultipartFile就可以接收到前端传送到后端的文件流。

(2)如何读取Exel文件流,并且解析每一行的数据:

使用EasyPoi提供的类ExcelImportUtil的importExcel(InputStream inputstream, Class<?> pojoClass, ImportParams params)。

(3)实体类和Excel表格的单元格是如何对应的:

只需要在实体类上添加注解@Excel(name = "姓名")。

二、导入Excel数据实操

首先创建一个实体类:

package com.example.demo.vo;import cn.afterturn.easypoi.excel.annotation.Excel;import lombok.Data;import java.io.Serializable;import java.util.Date;@Datapublic class UserImportVO implements Serializable {    @Excel(name = "姓名")    private String realName;    @Excel(name = "性别",replace = { "男生_1", "女生_2" }, addressList = true)    private Integer sex;    @Excel(name = "出生日期",format = "yyyy-MM-dd")    private Date birthday;    @Excel(name = "手机号码")    private String phone;    @Excel(name = "邮箱")    private String email;    @Excel(name = "头像地址")    private String avatar;    @Excel(name = "描述")    private String remark;}

导入Excel的代码:

/** * 导入excel数据 * /demo/importExcel01 */@RequestMapping("/importExcel01")public List<UserImportVO> importExcel01(@RequestParam("file") MultipartFile multipartFile) throws Exception {    //new一个模板    ImportParams params = new ImportParams();    //设置表格标题行数,默认0,这是读取时会跳过的行数    params.setTitleRows(1);    //表头行数,默认1。    //params.setHeadRows(1);    //开始读取,并用list接收,方便处理    List<UserImportVO> result = ExcelImportUtil.importExcel(multipartFile.getInputStream(), UserImportVO.class, params);    System.out.println(JSONUtil.toJsonStr(result));    return result;}

那怎么测试呢?

利用之前的导出代码,先导出一个Excel数据,执行如下导出:

http://127.0.0.1:8080/demo/exportExcel

得到这样的一份数据,然后在利用一些表单提交工具,进行提交:

这么简单的就实现导入数据的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/17527.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 安装zookeeper单机版

1. 安装版本3.5.7, 也可以自己去官网找到自己需要的版本复制命令即可 https://hub.docker.com/_/zookeeper/tags docker pull zookeeper:3.5.7 2. 创建映射文件夹&#xff1a; #1. 在centos中创建三个文件夹 mkdir -p /home/zookeeper/conf mkdir -p /home/zookeeper/data mkd…

Redis事务

reids事务是指将多条命令放在一个队列当中&#xff0c;保证多个命令在同一个事务中执行而不受其他客户端的影响。 mutil 表示开启事务 命令1 命令2 命令3 exec 表示执行事务 redis的事务中不会保证原子性&#xff0c;假如命令3有误&#xff0c;并不会影响命令1和命令2的执行…

Linux信号机制-2

转自&#xff1a;Linux信号处理_linux 信号处理函数_努力啃C语言的小李的博客-CSDN博客 什么是信号 信号本质上是在软件层次上对中断机制的一种模拟&#xff0c;其主要有以下几种来源&#xff1a; 程序错误&#xff1a;除零&#xff0c;非法内存访问等。 外部信号&#xff1a…

Mybatis从0到1 SQL注入 参数占位符 XML配置 动态SQL

1. Mybatis基础操作 学习完mybatis入门后&#xff0c;我们继续学习mybatis基础操作。 1.1 需求 需求说明&#xff1a; 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求&#xff0c;完成员工管理的需求开发。 通过分析以上的页面原型和需求&#xff0c;我们确定了功能…

我爱学QT-仿写智能家居界面 上 中 下

学习链接&#xff1a; 仿写一个智能家居界面&#xff08;上&#xff09;_哔哩哔哩_bilibili 上 给QT工程添加资源文件 在这里 然后选这个&#xff0c;choose后会有起名&#xff0c;之一千万不能是中文&#xff0c;要不就等报错吧 然后把你要添加的图片托到文件夹下&#xf…

TortoiseGit 入门指南01:环境搭建和软件设置

在我的博文Keil MDK环境下Git入门指南的最后&#xff0c;我这样写道&#xff1a; 目前使用 TortoiseGit 管理工程&#xff0c;用 Gitee 作为远程仓库。 命令行 Git 已经不再使用。 当时我并没有介绍软件 TortoiseGit 的使用方法&#xff0c;这个系列补上。如果你还没有看过《Ke…

希尔排序及其时间复杂度(图文详解)

&#x1f63e; 博客主页: 爱吃bug的猿 &#x1f680;博客专栏: 数据结构,C语言初阶进阶全流程讲解 &#x1f63d;&#x1f63d;&#x1f63d;如果喜欢博主的文章&#xff0c;可以给博主点波赞和关注加速博主更新 文章目录 前言1. 代码思路代码实现法1代码实现法2&#xff08;不…

HashMap底层原理:数据结构+put()流程+2的n次方+死循环+数据覆盖问题

导航&#xff1a; 【Java笔记踩坑汇总】Java基础进阶JavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式常见面试题源码_vincewm的博客-CSDN博客 目录 一、底层 1.1 HashMap数据结构 1.2 扩容机制 1.3 put()流程 1.4 HashMap是如何计算…

【Python爬虫与数据分析】Jupyter的安装与快捷键

目录 一、jupyter notebook安装与配置 二、命令模式快捷键 三、编辑模式快捷键 四、文件操作 一、jupyter notebook安装与配置 安装&#xff1a;Jupyter Notebook是以网页的形式打开的一个程序&#xff0c;集成在Anaconda包里面&#xff0c;也可以直接安装python3解释器&a…

docker安装es集群(三台)

文章目录 1、防火墙设置&#xff0c;开启所需端口2、创建目录&#xff0c;并更改目录权限3 设置系统参数4 启动5 安装ik分词器6 配置7 安装elasticsearch-head&#xff08;用于访问es&#xff0c;界面化工具&#xff09;8、 修改es中每次返回的数据数量参数&#xff08;默认100…

交换机远程登录telnet、SSH、禁止非法用户访问实验

交换机远程登录实验 交换机远程登录实验一、配置Console口登录设备二、配置Telnet远程登录三、Stelnet&#xff08;SSH&#xff09;配置四、远程登录实际中的配置五、禁止非法用户远程登录 交换机远程登录实验 ———————————————————————————————…

汽车+ChatGPT 车内生活体验再升级

这两年&#xff0c;人工智能工具ChatGPT爆火&#xff0c;在全球掀起了大模型之战。如今&#xff0c;最前沿的自然语言处理大模型应用到了人类的出行工具上&#xff0c;梅赛德斯-奔驰和微软官宣正在合作测试车载ChatGPT人工智能&#xff0c;并将面向约90万车主开启测试&#xff…