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内存模型之happens-before概念详解
Jun 13 Java/Android
详解Java实现设计模式之责任链模式
Jun 23 Java/Android
spring boot项目application.properties文件存放及使用介绍
Jun 30 Java/Android
Java图书管理系统,课程设计必用(源码+文档)
Jun 30 Java/Android
java固定大小队列的几种实现方式详解
Jul 15 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
Java tomcat手动配置servlet详解
Nov 27 Java/Android
Java如何实现通过键盘输入一个数组
Feb 15 Java/Android
Java中Quartz高可用定时任务快速入门
Apr 03 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
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
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php session应用实例 登录验证
2009/03/16 PHP
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
php的debug相关函数用法示例
2016/07/11 PHP
PHP图片水印类的封装
2017/07/06 PHP
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
python分析网页上所有超链接的方法
2015/05/08 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
销售会计岗位职责
2014/03/15 职场文书
租车协议书范本
2014/04/22 职场文书
出纳岗位职责范本
2015/03/31 职场文书
学校捐款活动总结
2015/05/09 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
选购到合适的激光打印机
2022/04/21 数码科技