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 相关文章推荐
为什么在foreach循环中JAVA集合不能添加或删除元素
Jun 11 Java/Android
解决tk mapper 通用mapper的bug问题
Jun 16 Java/Android
Java多条件判断场景中规则执行器的设计
Jun 26 Java/Android
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
Jul 01 Java/Android
Java 在生活中的 10 大应用
Nov 02 Java/Android
Java 通过手写分布式雪花SnowFlake生成ID方法详解
Apr 07 Java/Android
Java 超详细讲解十大排序算法面试无忧
Apr 08 Java/Android
Java 定时任务技术趋势简介
May 04 Java/Android
Spring 使用注解开发
May 20 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
Android Studio 计算器开发
May 20 Java/Android
springboot为异步任务规划自定义线程池的实现
Jun 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
php上的memcache和memcached两个pecl库
2010/03/29 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
python 并发下载器实现方法示例
2019/11/22 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
社区党员志愿服务活动方案
2014/08/18 职场文书
怎样写离婚协议书
2015/01/26 职场文书
九年级英语教学反思
2016/02/15 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技