EasyExcel遍历目录下表格+数据合并

EasyExcel遍历目录下表格+数据合并

文章目录
参考 - easyexcel写、追加操作 - 知乎 (zhihu.com)

概述

需求描述

在一个文件夹内有很多子文件夹,里面有许多excel,我需要把里面的excel数据全部取出来合并到一个新的excel中,这些表格的数据格式是一样的

我的表格数据是这个样子的

前置工作准备

导入依赖

        <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.0.5</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.10</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.79</version>
        </dependency>

向上面那位知乎博主拿一下工具类

package com.ljm.tools;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import java.util.ArrayList;
import java.util.List;

public class EasyExcelUtil2 {
   
    private ExcelWriter excelWriter = null;
    private WriteSheet writeSheet = null;

    /**
     * ===========================================================
     * Purpose      :   EasyExcel工具类 初始化(最先调用)
     * @return Author       :   lzt
     * Created Date :   2021-12-28
     * Update History
     * Version       Date               Name            Description
     * --------  ---------------   --------------  --------------------
     * V1.0       2021-12-28           lzt            Creation
     * ===========================================================
     * @params: absFilePath  绝对路径
     * @params: sheetName 标签页名字
     * @params: titleList 标题头(第一行)
     */
    public void init(String absFilePath, String sheetName, List<String> titleList) {
   
        if (excelWriter == null && writeSheet == null) {
   
            List<List<String>> heads = new ArrayList<>(1);
            //表格头标题
            heads.add(titleList);
            // 这里 需要指定写用哪个标题头去写 可以用class 也可以不用
            excelWriter = EasyExcelFactory.write(absFilePath).head(heads).build();
            // 这里注意 如果同一个sheet只要创建一次
            writeSheet = EasyExcelFactory.writerSheet(sheetName).build();
        }
    }

    /**
     * ===========================================================
     * Purpose      :   EasyExcel工具类 写入excel写内容
     * @return Author       :   lzt
     * Created Date :   2021-12-28
     * Update History
     * Version       Date               Name            Description
     * --------  ---------------   --------------  --------------------
     * V1.0       2021-12-28           lzt            Creation
     * ===========================================================
     * @params: dataList  要插入的数据(多行插入)
     */
    public void doExportExcel(List<List<String>> dataList) {
   
        try {
   
            excelWriter.write(dataList, writeSheet);
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }

    /**
     * ===========================================================
     * Purpose      :   EasyExcel工具类 关闭(最后调用 关闭流)
     * @return Author       :   lzt
     * Created Date :   2021-12-28
     * Update History
     * Version       Date               Name            Description
     * --------  ---------------   --------------  --------------------
     * V1.0       2021-12-28           lzt            Creation
     * ===========================================================
     */
    public void finish() {
   
        if (excelWriter != null) {
   
            excelWriter.finish();
        }
    }
}

准备好实体类

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
 * @author lijiamin
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Device {
   
    @ExcelProperty(index = 0, value = "ElementID")
    private String ElementID;
    @ExcelProperty(index = 1, value = "CODE")
    private String CODE;
    @ExcelProperty(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值