• SpringBoot整合EasyExcel


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

    依赖

    1. <!--操作Excel依赖-->
    2. <dependency>
    3. <groupId>com.alibaba</groupId>
    4. <artifactId>easyexcel</artifactId>
    5. <version>3.1.1</version>
    6. </dependency>

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

    准备工作

    一张excel表+一个实体类

    1. @Data
    2. @ColumnWidth(20)
    3. public class area {
    4. @ExcelProperty(value = "id",index = 0)
    5. private int id;
    6. @ExcelProperty(value = "姓名",index = 1)
    7. private String name;
    8. }

     读excel的流程之 创建

    AnalysisEventListener监听器,读到数据,封装成area对象后会触发这个invoke方法。
    1. @Slf4j
    2. public class areaReadListener extends AnalysisEventListener<area> {
    3. // 每读一次,会调用该invoke方法一次,就是想对获取到的数据进行什么操作
    4. @Override
    5. public void invoke(area data, AnalysisContext context) {
    6. System.out.println("data = " + data);
    7. log.info(data + "保存成功");
    8. }
    9. // 全部读完之后,会调用该方法(这个暂时用不到)
    10. @Override
    11. public void doAfterAllAnalysed(AnalysisContext context) {
    12. // TODO......
    13. }
    14. }

    开始读文件

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

    开始写文件

    getdata 方法生成数据,
    sheet.doWrite(areaList); 写入方法填入数据集合,完成写入
    1. public static List<area> getdata() {
    2. ArrayList<area> list = new ArrayList<>();
    3. for (int i = 0; i < 10; i++) {
    4. area area = new area();
    5. area.setId(i);
    6. area.setName("测试"+i);
    7. list.add(area);
    8. }
    9. return list;
    10. }
    11. @Test
    12. public void test02(){
    13. ExcelWriterBuilder writeWorkBook = EasyExcel.write("D:\\B-project\\springboot-mybatis\\src\\main\\java\\com\\example\\springmybatis\\area.xlsx", area.class);
    14. ExcelWriterSheetBuilder sheet = writeWorkBook.sheet();
    15. //doWrite(initData()之前提前加入的生成数据的方法。
    16. List<area> areaList = getdata();
    17. sheet.doWrite(areaList);
    18. }

  • 相关阅读:
    自建网盘平台搭建(源码+教程)
    BloomFilter:布隆过滤器和Redis缓存穿透
    springboot基于javaweb校园防疫管理系统毕业设计源码021043
    element-ui在项目当中的引入以及按需引入使用
    WISE 2019 | ML-GCN:多标签图节点分类的半监督图嵌入
    DOM——文件对象模型(事件响应链、阻止冒泡和系统默认事件、事件代理、样式操作css、防抖和节流、预加载和懒加载、async,defer)
    关于 Spring Boot 自动装配你知道多少?
    什么是HTTP状态码?常见的HTTP状态码有哪些?
    Unity 报错:SSL CA certificate error
    基本数据类型和对应的包装类
  • 原文地址:https://blog.csdn.net/m0_58580098/article/details/134216321