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
Spring Data JPA使用JPQL与原生SQL进行查询的操作
Jun 15 Java/Android
Java 数组内置函数toArray详解
Jun 28 Java/Android
JavaWeb Servlet实现网页登录功能
Jul 04 Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Aug 02 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
java多态注意项小结
Oct 16 Java/Android
SpringCloud Feign请求头删除修改的操作代码
Mar 20 Java/Android
springboot读取nacos配置文件
May 20 Java/Android
Java Spring Boot请求方式与请求映射过程分析
Jun 25 Java/Android
java实现web实时消息推送的七种方案
Jul 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
在Python中使用next()方法操作文件的教程
2015/05/24 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
python游戏地图最短路径求解
2019/01/16 Python
python爬虫可以爬什么
2020/06/16 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
HEMA英国:荷兰原创设计
2018/08/28 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
环保建议书600字
2014/05/14 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
项目转让协议书
2014/10/27 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技