springboot layui hutool Excel导入的实现


Posted in Java/Android onMarch 31, 2022

一、导入依赖

(一)其他环境准备

首先前期根据需求需要搭建springboot+前端的框架,这个根据个人项目来,我是用的springboot+layui。这些不是这里讨论的重点。

(二)hutool和Excel导入

<!-- 基本依赖包 -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.0</version>
</dependency>

必须推荐一波:

二、核心代码

(一)前端按钮

前端代码不是核心,只是为了一个思路

//①按钮
<button id="importData" class="layui-btn">导入</button>
//②//导入 用layui upload插件
    layui.use([ "element", "laypage", "layer", "upload"], function() {
        debugger;
        var element = layui.element;
        var laypage = layui.laypage;
        var layer = layui.layer;
        var upload = layui.upload;//主要是这个
        layui.upload.render({
            elem: "#importData",//导入id
            url: "/emp/importData",
            size: '3072',
            accept: "file",
            exts: 'xls|xlsx|xlsm|xlt|xltx|xltm',
            done: function (result) {
                if (result.status == 0) {
                    parent.layui.table.reload('LAY-app-emp-list');
                }
                if (result.message != null) {
                    parent.layui.table.reload('LAY-app-emp-list');
                    layer.msg(result.message)
                }
            }
        });
        // refreshTable()
    });

(二)后端代码

controller接口

@PostMapping(value = "/importData")
@ResponseBody
public CommonResult importData(@RequestParam MultipartFile file) {
    //调用service方法,这个地方通过MultipartFile参数就可以接收到上传的Excel文件内容了
    empService.importTemplate(file);
    return CommonResult.success("上传成功");
}

service实现类代码

说明:这里我们接收到file之后,通过hutool工具中的ExcelUtil工具帮我们解析文件,等到一行一行的数据,这个时候我们只需要映射到我们的实体类中。这里我只是写了一个EmpDO中的两个字段,如果业务复杂参考这两个字段来就行了。

@Override
public void importTemplate(MultipartFile file) {
    InputStream inputStream = null;
    try {
        inputStream = file.getInputStream();
    }catch (Exception e){
        logger.info("文件异常");
    }
    //指定输入流和sheet
    ExcelReader reader = ExcelUtil.getReader(inputStream, 0); 
    // 读取第二行到最后一行数据
    List<List<Object>> read = reader.read(1, reader.getRowCount());
    List<EmpDO> empDOS = new ArrayList<>();
    for (List<Object> objects : read) {
        EmpDO empDO = new EmpDO();
        //读取某行第一列数据
        Object sampleNo = objects.get(0);
        //读取某行第二列数据
        Object sampleName = objects.get(1);
        //员工id
        empDO.setEmpId(Integer.parseInt(sampleNo.toString()));
        //员工姓名
        empDO.setName(sampleName.toString());
        empDOS.add(empDO);
        //这里没有做数据插入到数据库的操作,我用的是mybatisplus
        System.out.println(empDO);
    }
}

三、测试

(一)文件准备:

springboot layui hutool Excel导入的实现

(二)选择导入文件

springboot layui hutool Excel导入的实现

(三)进入到业务处理

springboot layui hutool Excel导入的实现

 到此这篇关于springboot layui hutool Excel导入的实现的文章就介绍到这了,更多相关springboot layui hutool Excel导入内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
Java数据结构之链表相关知识总结
Jun 18 Java/Android
JVM钩子函数的使用场景详解
Aug 23 Java/Android
SSM项目使用拦截器实现登录验证功能
Jan 22 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Java 数据结构七大排序使用分析
Apr 02 Java/Android
零基础学java之带参数以及返回值的方法
Apr 10 Java/Android
Spring Data JPA框架自定义Repository接口
Apr 28 Java/Android
详解Android中的TimePickerView(时间选择器)的用法
Apr 30 Java/Android
解决Springboot PostMapping无法获取数据的问题
May 06 Java/Android
java.util.NoSuchElementException原因及两种解决方法
Jun 28 Java/Android
SpringBoot详解整合Redis缓存方法
Jul 15 Java/Android
Java使用HttpClient实现文件下载
Aug 14 Java/Android
spring注解 @PropertySource配置数据源全流程
Mar 25 #Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 #Java/Android
Java 超详细讲解设计模式之中的抽象工厂模式
Netty分布式客户端处理接入事件handle源码解析
Java 超详细讲解IO操作字节流与字符流
Netty分布式客户端接入流程初始化源码分析
Mar 25 #Java/Android
java后台调用接口及处理跨域问题的解决
Mar 24 #Java/Android
You might like
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php xml常用函数的集合(比较详细)
2013/06/06 PHP
php自定义hash函数实例
2015/05/05 PHP
php自定义分页类完整实例
2015/12/25 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
Python常用模块介绍
2014/11/21 Python
python字典排序实例详解
2015/05/20 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
党支部对照检查材料
2014/08/25 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
小学教研工作总结2015
2015/05/13 职场文书
小学运动会宣传稿
2015/07/23 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL