使用EasyExcel将本地excel数据读取后导入mysql数据库中

本文介绍了如何利用阿里巴巴的EasyExcel框架将本地Excel数据读取,并导入到MySQL数据库中。详细讲述了EasyExcel的功能,项目背景,以及具体的操作步骤,包括pom.xml配置,创建实体类,编写监听器,以及处理包含数组对象的数据。同时,文章还提到了在使用过程中遇到的问题及解决方法。
摘要由CSDN通过智能技术生成

本篇文章只记录EasyExcel的读(read)

一、 EasyExcel 是做什么的?

首先看下EasyExcel解释:
EasyExcel是阿里巴巴开源的一个excel处理框架,是一个基于Java的简单、省内存的读写Excel的开源项目。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。

开源地址:
github地址:https://github.com/alibaba/easyexcel
(光看代码我还是有点懵懵,到小破站搜了相关视频,狂神的一个视频直接解释得一清二楚。几乎直接照着他说的做就好了,当然了要根据自己的实际情况进行适当改动。)

二、项目背景

我做的一个小项目需要把excel表中的数据导入到数据库中,然而有些数据列中还包含了很多数组对象[{…},{…},{…},{…}],而这里面的内容是要当成一个一个字段分别储存到数据库里的,因为人工或者excel都不太现实。所以就去了解了一下这个框架的使用。

excel如下:

注意:excel 不要有任何表头,因为是直接从实体类对应的参数列开始读取

三、具体使用过程

1. pom.xml 配置要加:

		 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.75</version>
        </dependency>

2. 代码共有三个步骤:

  1. 创建excel对应的实体对象Dao类;
  2. 写监听器:默认是一行行的读取excel,所以需要创建excel一行一行的回调监听器,监听器主要实现了读取和储存;
  3. 调取监听器:配置好excel的位置,调取监听器读取表,然后存入数据库
步骤一:建立excel对应的实体类

ps: 使用 @ExcelProperty 注解来说明对应的excel列
在这里插入图片描述
"电阻测试数据"对应的实体类
(这里需要说明一下,我当时在excel上把这4个参数名全部替换成了对应的英文名)
在这里插入图片描述
如果最后要存到数据库里的表结构 和 excel对应的实体类有出入(比如读取到的某个字段是数组对象结构如上图excel中的"电阻测试数据",那么还需要经过处理拆分成多个字段才能分开存入数据库),那就需要额外建立一个与数据库的表对应的类(略),用于接收所有数据并存入数据库中。

数据库创建的表:在这里插入图片描述

步骤二:写监听器

监听器具体实现

/**
 * Date:2021/10/20
 * Description: excel一行一行的回调监听器
 *
 * @author ivyhu
 */
@Component
public class DemoDataListener extends AnalysisEventListener<ExcelModel> {
   

    @Resource
    ChargingStationMapper charingStationResistanceReportMapper;
    @Resource
    CharingStationServiceImpl charingStationServiceImpl;

    private static final Logger LOGGER = LoggerFactory.get
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值