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 相关文章推荐
JavaWeb 入门篇(3)ServletContext 详解 具体应用
Jul 16 Java/Android
springboot中的pom文件 project报错问题
Jan 18 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
Jan 18 Java/Android
alibaba seata服务端具体实现
Feb 24 Java/Android
你知道Java Spring的两种事务吗
Mar 16 Java/Android
Java 深入探究讲解简单工厂模式
Apr 07 Java/Android
Java 垃圾回收超详细讲解记忆集和卡表
Apr 08 Java/Android
java版 简单三子棋游戏
May 04 Java/Android
Java数据结构之堆(优先队列)
May 20 Java/Android
多线程Spring通过@Scheduled实现定时任务
May 25 Java/Android
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
Jun 01 Java/Android
Java代码规范与质量检测插件SonarLint的使用
Aug 05 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
PHP的FTP学习(二)
2006/10/09 PHP
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
DBA的职责都有哪些
2012/05/16 面试题
国际贸易个人求职信范文
2014/01/04 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
保证书格式
2015/01/16 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
opencv检测动态物体的实现
2021/07/21 Python
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers