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 相关文章推荐
SpringCloud的JPA连接PostgreSql的教程
Jun 26 Java/Android
Jackson 反序列化时实现大小写不敏感设置
Jun 29 Java/Android
java泛型通配符详解
Jul 25 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
springboot中rabbitmq实现消息可靠性机制详解
Sep 25 Java/Android
OpenCV实现普通阈值
Nov 17 Java/Android
Java存储没有重复元素的数组
Apr 29 Java/Android
Java 定时任务技术趋势简介
May 04 Java/Android
Java 数组的使用
May 11 Java/Android
Java实现添加条码或二维码到Word文档
Jun 01 Java/Android
SpringCloud超详细讲解Feign声明式服务调用
Jun 21 Java/Android
Android基础入门之dataBinding的简单使用教程
Jun 21 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 discuz 主题表和回帖表的设计
2009/03/13 PHP
深入浅出php socket编程
2015/05/13 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
js获取url参数值的两种方式
2013/09/10 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
Python中bisect的用法
2014/09/23 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
Python WSGI的深入理解
2018/08/01 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
宿舍违规检讨书
2014/01/12 职场文书
大型会议策划方案
2014/05/17 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
教师节活动总结
2014/08/29 职场文书
大学生创业事迹材料
2014/12/30 职场文书
学习保证书100字
2015/02/26 职场文书
党支部评议意见
2015/06/02 职场文书
怒海潜将观后感
2015/06/11 职场文书