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 相关文章推荐
详细了解MVC+proxy
Jul 09 Java/Android
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
Jul 16 Java/Android
logback如何自定义日志存储
Aug 30 Java/Android
SpringDataJPA实体类关系映射配置方式
Dec 06 Java/Android
正则表达式拆分url实例代码
Feb 24 Java/Android
JVM之方法返回地址详解
Feb 28 Java/Android
Java 超详细讲解设计模式之中的抽象工厂模式
Mar 25 Java/Android
Spring Boot DevTools 全局配置学习指南
Mar 31 Java/Android
Java死锁的排查
May 11 Java/Android
Android 中的类文件和类加载器详情
Jun 05 Java/Android
Java异常体系非正常停止和分类
Jun 14 Java/Android
使用Postman测试需要授权的接口问题
Jun 21 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
python正则表达式re模块详解
2014/06/25 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
python中reader的next用法
2018/07/24 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
python中的print()输出
2019/04/12 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
检举信的格式及范文
2014/04/04 职场文书
葬礼主持词
2015/07/02 职场文书
养成教育工作总结
2015/08/13 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python