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之Feign超时问题的解决
Jun 24 Java/Android
Java Kafka 消费积压监控的示例代码
Jul 01 Java/Android
SpringBoot SpringEL表达式的使用
Jul 25 Java/Android
浅谈Java父子类加载顺序
Aug 04 Java/Android
关于springboot配置druid数据源不生效问题(踩坑记)
Sep 25 Java/Android
OpenCV实现反阈值二值化
Nov 17 Java/Android
springmvc直接不经过controller访问WEB-INF中的页面问题
Feb 24 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
Android开发手册TextInputLayout样式使用示例
Jun 10 Java/Android
Java Spring读取和存储详细操作
Aug 05 Java/Android
java获取一个文本文件的编码(格式)信息
Sep 23 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
python线程池如何使用
2020/05/28 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
详解Python中的文件操作
2021/01/14 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
项目开发计划书
2014/01/09 职场文书
继承公证书
2014/04/09 职场文书
机关作风建设工作总结
2014/10/23 职场文书
公司员工手册范本
2015/05/14 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript
CSS的calc函数用法小结
2022/06/25 HTML / CSS