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用自带的Image IO给图片添加水印
Jun 15 Java/Android
解决ObjectMapper.convertValue() 遇到的一些问题
Jun 30 Java/Android
如何给HttpServletRequest增加消息头
Jun 30 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
JAVA API 实用类 String详解
Oct 05 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
你知道Java Spring的两种事务吗
Mar 16 Java/Android
Java处理延时任务的常用几种解决方案
Jun 01 Java/Android
Spring JPA 增加字段执行异常问题及解决
Jun 10 Java/Android
tree shaking对打包体积优化及作用
Jul 07 Java/Android
Java Spring读取和存储详细操作
Aug 05 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
基于Zookeeper的使用详解
2013/05/02 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
JS重要知识点小结
2011/11/06 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
工商管理毕业生推荐信
2013/12/24 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
法定代表人免职证明
2015/06/24 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android