springboot解析上传excel,存入数据库

本文介绍如何使用SpringBoot结合Apache POI实现Excel批量导入数据的功能,并详细解析了从前端文件选择到后端数据处理及存储的全过程。

springboot解析上传excel,存入数据库

项目需要,写了一个,批量导入的接口。因为需要使用excel去批量导入数据,所以写了一个例子,经过测试已经可以用于实际开发,这里记录一下。

一、导入依赖
这里还是用了Apache的POI插件,现在一般的springboot解析excel基本都用它 。

  <!-- 文件上传,解析文件需要的依赖-->
        <!--poi对excel2007以上版本的支持-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.0.0</version>
        </dependency>
        <!-- poi对excel2003以下版本的支持 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>5.0.0</version>
        </dependency>

二、前端实现

 <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" id="bookFileUpload">
                    <i class="layui-icon">&#xe67c;</i>文件导入
                </button>
  /**
     * 文件上传--批量导入
     */
    layui.use('upload', function () {
   
   
        var upload = layui.upload;
        var layer = layui.layer;
        // layer.msg('上传中', {icon: 16, time: 0,shade: 0.3});
        //执行实例
        var uploadInst = upload.render({
   
   
            elem: '#bookFileUpload', //绑定元素
            url: '/library/book/batchAddBooks/', //上传接口
            exts: 'xlsx|xls', //限制文件类型
            done: function (res) {
   
   
                //上传完毕回调
                if (res.code == '1') {
   
   
                    successMsg("导入成功");
                } else {
   
   
                    errorMsg("导入失败" + res);
                }
            },
            error: function (res) {
   
   
                //请求异常回调
                errorMsg("系统异常" + res);
            }
        });
    });

说明一下,这里还是用了layui的框架去实现的,layui是我用过的前端框架里边坑相对较少的一个不错的简单并且很容易入门的框架。

三、后台逻辑

  1. 首先写一个用于导入数据的model实体类,对应数据库的一张表。
/**
 * 书籍实体
 */
@Data
public class Book {
   
   
    //主键id
    private int bid;
    //书名
    private String bookname;
    //作者
    private String author;
    //书的类型  武侠、言情等
    private String booktype;
    //出版社
    private String publisher;
    //出版时间
    private String publicationdate;
    //发行价格
    private int price;
    //发行状态
    private String bookstate;
    //备注
    private String comment;
}

这里使用了lombok的插件工具,所以可以省去写setget方法,只需要@Data即可。
lombok的依赖,可用可不用,看你自己:

    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
  1. 接着写一下前端上传过来excel,后台的解析处理逻辑。
    下面是重点:
package com.example.library.utils.fileUtiles;

import com.example.library.model.Book;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值