SpringBoot整合EasyExcel

springboot整合easyExcel的全流程,跟着做就能出来。对项目没有侵入要求。0侵入,可插拔

依赖

复制代码
   <!--操作Excel依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.1.1</version>
        </dependency>

配置文件没有,不用操心这个

准备工作

一张excel表+一个实体类

复制代码
@Data
@ColumnWidth(20)
public class area {
    @ExcelProperty(value = "id",index = 0)
    private int id;
    @ExcelProperty(value = "姓名",index = 1)
    private String name;
}

读excel的流程之 创建

复制代码
AnalysisEventListener监听器,读到数据,封装成area对象后会触发这个invoke方法。
复制代码
@Slf4j
public class areaReadListener extends AnalysisEventListener<area> {
    // 每读一次,会调用该invoke方法一次,就是想对获取到的数据进行什么操作
    @Override
    public void invoke(area data, AnalysisContext context) {
        System.out.println("data = " + data);
        log.info(data + "保存成功");
    }

    // 全部读完之后,会调用该方法(这个暂时用不到)
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // TODO......
    }
}

开始读文件

复制代码
  @Test
    public void test05() {
        /**
         * Build excel the read  构建一个读的工作簿
         *
         * @param pathName  读文件的路径
         *            File path to read.
         * @param head  每一行数据存储的到的实体类的类型的class
         *            Annotate the class for configuration information.
         * @param readListener  监听器 没读一行内容都会调用该对象的invoke,在invoke可以操作使用读取到的数据
         *            Read listener.
         * @return Excel reader builder.
         */
//        获取工作簿对象						excel文件位置   最后一个参数是监听器类
        ExcelReaderBuilder readWorkBook = EasyExcel.read("D:\\B-project\\springboot-mybatis\\src\\main\\java\\com\\example\\springmybatis\\area.xlsx", area.class, new areaReadListener());
//        获取工作表对象
        ExcelReaderSheetBuilder sheet = readWorkBook.sheet();
//        读取表中的内容
        sheet.doRead();


    }

开始写文件

复制代码
getdata 方法生成数据,
复制代码
sheet.doWrite(areaList); 写入方法填入数据集合,完成写入
复制代码
   public static List<area> getdata() {

        ArrayList<area> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            area area = new area();
            area.setId(i);
            area.setName("测试"+i);
            list.add(area);
        }
        return list;
    }
    @Test
    public void test02(){
        ExcelWriterBuilder writeWorkBook = EasyExcel.write("D:\\B-project\\springboot-mybatis\\src\\main\\java\\com\\example\\springmybatis\\area.xlsx", area.class);
        ExcelWriterSheetBuilder sheet = writeWorkBook.sheet();
        //doWrite(initData()之前提前加入的生成数据的方法。
        List<area> areaList = getdata();
        sheet.doWrite(areaList);
    }
相关推荐
汝生淮南吾在北13 分钟前
SpringBoot+Vue饭店点餐管理系统
java·vue.js·spring boot·毕业设计·毕设
无限大63 小时前
计算机十万个为什么--数据库索引
后端
冬夜戏雪3 小时前
【java学习日记】【2025.12.7】【7/60】
java·开发语言·学习
CC.GG4 小时前
【C++】二叉搜索树
java·c++·redis
学历真的很重要4 小时前
VsCode+Roo Code+Gemini 2.5 Pro+Gemini Balance AI辅助编程环境搭建(理论上通过多个Api Key负载均衡达到无限免费Gemini 2.5 Pro)
前端·人工智能·vscode·后端·语言模型·负载均衡·ai编程
地瓜伯伯4 小时前
Nginx终极配置指南:负载均衡、限流、反向代理、IP白名单、SSL、云原生、DNS解析、缓存加速全都有
spring boot·nginx·spring·spring cloud·微服务·云原生·负载均衡
JIngJaneIL5 小时前
基于Java非遗传承文化管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
+VX:Fegn08955 小时前
计算机毕业设计|基于springboot + vue心理健康管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
南部余额5 小时前
踩坑与解惑:深入理解 SpringBoot 自动配置原理与配置排除机制
java·spring boot·自动配置原理·import
invicinble6 小时前
springmvc项目应用层级
spring boot