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的常用工具
Jun 11 Java/Android
JVM入门之类加载与字节码技术(类加载与类的加载器)
Jun 15 Java/Android
SpringAop日志找不到方法的处理
Jun 21 Java/Android
Spring中bean的生命周期之getSingleton方法
Jun 30 Java/Android
java调用Restful接口的三种方法
Aug 23 Java/Android
深入浅出讲解Java8函数式编程
Jan 18 Java/Android
Java基础——Map集合
Apr 01 Java/Android
Java十分钟精通进阶适配器模式
Apr 06 Java/Android
Java的Object类的九种方法
Apr 13 Java/Android
Android 中的类文件和类加载器详情
Jun 05 Java/Android
springboot 全局异常处理和统一响应对象的处理方式
Jun 28 Java/Android
Java多线程并发FutureTask使用详解
Jun 28 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开发GUI
2006/10/09 PHP
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
PHP中list方法用法示例
2016/12/01 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
老生常谈angularjs中的$state.go
2017/04/24 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Django 多环境配置详解
2019/05/14 Python
基于python实现学生信息管理系统
2019/11/22 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
个人简历自我鉴定
2013/10/11 职场文书
电子商务专业求职信
2014/03/08 职场文书
安全责任书范本
2014/04/15 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书