springboot layui hutool Excel导入的实现

网友投稿 317 2022-08-16


springboot layui hutool Excel导入的实现

目录一、导入依赖(一)其他环境准备(二)hutool和Excel导入二、核心代码三、测试

一、导入依赖

(一)其他环境准备

首先前期根据需求需要搭建springboot+前端的框架,这个根据个人项目来,我是用的springboot+layui。这些不是这里讨论的重点。

(二)hutool和Excel导入

cn.hutool

hutool-all

5.3.8

org.apache.poi

poi-ooxml

4.0.0

必须推荐一波:

二、核心代码

(一)前端按钮

前端代码不是核心,只是为了一个思路

//①按钮

//②//导入 用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) {

pahttp://rent.layui.table.reload('LAY-app-emp-list');

layer.msg(result.message)

}

}

})http://;

// 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> read = reader.read(1, reader.getRowCount());

List empDOS = new ArrayList<>();

for (List 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);

}

}

三、测试

(一)文件准备:

(二)选择导入文件

(三)进入到业务处理


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring依赖注入多种类型数据的示例代码
下一篇:MyBatis 超详细讲解动态SQL的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~