2022-9-25 EasyExcel读写操作和单多文件上传并修改

本文详细介绍了如何使用EasyExcel进行Excel的读写操作,包括从数据库导出数据到Excel,将Excel数据导入数据库,以及单文件和多文件上传并修改的实战步骤。EasyExcel因其低内存消耗和简单的使用方式而备受青睐。
摘要由CSDN通过智能技术生成

目录

1、Excel导入导出的应用场景

2、EasyExcel特点

3、创建项目,实现EasyExcel对Excel写操作

3.1pom中引入xml相关依赖

3.2创建实体类 设置表头和添加的数据字段

3.3 实现写操作

4.实现EasyExcel对Excel读操作

4.1 创建实体类

4.2 创建读取操作的监听器

4.3 调用实现最终的读取

5. 写操作 从数据库中查询数据写到excel中

5.1 操作 其他同上

6. 读操作 将excel中的数据存到数据库中

6.1 操作 其他同上

6.2 读取Excel

7. 项目实战操作导入excel表到数据库

7.1 实体类同上

7.2 Controller层

7.3 Service层

7.4 ServiceImpl层

7.5 Listener 监听器 重要 (必写)

8. 单文件上传

9. 单文件上传并修改

10. 多文件上传并修改


1、Excel导入导出的应用场景

1、数据导入:减轻录入工作量

2、数据导出:统计信息归档

3、数据传输:异构系统之间数据传输

2、EasyExcel特点

Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是 非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或 者JVM频繁的full gc。

EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减 少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一 行行读取数据,逐个解析。

EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理 (AnalysisEventListener)。

3、创建项目,实现EasyExcel对Excel写操作

3.1pom中引入xml相关依赖

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.1</version>
    </dependency>
</dependencies>

3.2创建实体类 设置表头和添加的数据字段

//设置表头和添加的数据字段
@Data
public class DemoData {
//设置表头名称
@ExcelProperty("学生编号")
private int sno;
 //设置表头名称
@ExcelProperty("学生姓名")
private String sname;
}

3.3 实现写操作

//写操作
    public static void main(String[] args) {

        String fileName = "C:\\Users\\liu25\\Desktop\\demo\\新建文件夹\\2.xlsx";

//        这里需要指定写到那个class中,写到第一个sheet名字为模板,文件流会自动关闭
        EasyExcel.write(fileName, Student.class).sheet("4").doWrite(getData());

    }

    //    循环设置要添加的数据最终封装到list集合中
    private static List<Student> getData() {

        ArrayList<Student> list = new ArrayList<>();

        for (int i = 0; i < 10; i++) {
            Student student = new Student();
            student.setId(i + 1);
            student.setName("路虎" + i + "号");
            student.setGender("男");
            student.setBirthday(new Date());
            list.add(student);
        }
        return list;
    }

4.实现EasyExcel对Excel读操作

4.1 创建实体类

@Data
public class ReadData {
//设置列对应的属性
@ExcelProperty(index = 0)
private int sid;
//设置列对应的属性
@ExcelProperty(index = 1)
private String sname;
}

4.2 创建读取操作的监听器

//创建读取excel监听器
public class ExcelListener extends AnalysisEventListener<ReadData> {
//创建list集合封装最终的数据
List<ReadData> list = new ArrayList<ReadData>();
//一行一行去读取excle内容
@Override
public void invoke(ReadData user, AnalysisContext analysisContext) {
System.out.println("***"+user);
list.add(user
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值