Java实现快速合并Excel工作表和文件

 更新时间:2025年11月08日 08:52:44   作者:E-iceblue  
合并 Excel 文件是数据处理中非常常见的需求,但是在不同文件或表格中来回复制粘贴却十分费时费力,下面我们就来看看如何使用Java实现快速合并Excel工作表和文件吧

合并 Excel 文件是数据处理中非常常见的需求,但是在不同文件或表格中来回复制粘贴却十分费时费力。那么有没有更快的方法呢?其实只需要简单的 Java 代码就能轻松实现批量合并 Excel。不管是整合多个工作表为一个文件,还是汇总不同 Excel 文件中的数据,你都可以做到一键完成!

本文使用到的 Java 库是 Spire.XLS for Java,这是一个专业且功能丰富的 Excel 组件,可以轻松处理 Excel 相关的多种任务。同时,该工具为小型项目提供了免费版,你可以导航到官方网站进行获取。

Java 合并 Excel 工作表

Excel 文件往往包含多个工作表,用来记录不同阶段或部门的数据。但在分析汇总时,我们往往需要把这些分散的内容整合到一个工作表中,方便统一查看和处理。接下来,我们就来看看如何使用 Java 代码高效地将多个工作表合并为一个,实现数据的快速整合。

步骤

  • 创建主工作簿:使用 Workbook 对象并删除默认工作表,通过 getWorksheets().add() 新建一个用于保存合并结果的工作表。
  • 加载源文件:分别创建临时 Workbook 对象,使用 loadFromFile() 方法加载要合并的 Excel 文件。
  • 获取并复制数据:通过 getWorksheets().get(0) 获取每个文件中的目标工作表,使用 getAllocatedRange().copy() 将其内容复制到主工作簿的新工作表中。
  • 调整粘贴位置:利用 getLastRow() 方法确定下一次粘贴的起始行,确保多个文件数据依次排列而不被覆盖。
  • 保存结果文件:调用 saveToFile() 方法,将合并完成的工作簿输出到指定的 output 文件夹中。

代码示例:将分属两个 Excel 文件中的第一个工作表合并到一起

import com.spire.xls.*;

public class MergeWorksheets {
    public static void main(String[] args) {
        // 输入文件路径
        String[] inputFiles = new String[]{
                "E:/Administrator/Python1/input/北美人口数量前十.xlsx",
                "E:/Administrator/Python1/input/南美人口数量前十.xlsx"
        };

        // 输出文件路径
        String outputFile = "E:/Administrator/Python1/output/合并结果.xlsx";

        // 创建一个新的工作簿
        Workbook mergedWorkbook = new Workbook();
        mergedWorkbook.getWorksheets().clear(); // 删除默认空白表

        // 在新工作簿中添加一个合并用的工作表
        Worksheet mergedSheet = mergedWorkbook.getWorksheets().add("合并结果");

        // 创建一个临时工作簿
        Workbook tempWorkbook = new Workbook();

        int currentRow = 1; // 记录目标表中当前可写入的行号

        // 遍历输入文件
        for (String file : inputFiles) {
            // 加载当前 Excel 文件
            tempWorkbook.loadFromFile(file);

            // 获取第一个工作表
            Worksheet sourceSheet = tempWorkbook.getWorksheets().get(0);

            // 获取源表已用区域
            CellRange sourceRange = sourceSheet.getAllocatedRange();

            // 获取目标区域起点(currentRow 行,第 1 列)
            CellRange destRange = mergedSheet.getCellRange(currentRow, 1, currentRow, 1);

            // 将源表复制到目标区域
            sourceRange.copy(destRange);

            // 更新下一次写入起点行号
            currentRow += sourceRange.getRowCount();
        }

        // 保存结果
        mergedWorkbook.saveToFile(outputFile, ExcelVersion.Version2016);

        // 释放资源
        mergedWorkbook.dispose();
        tempWorkbook.dispose();
    }
}

输出文件预览

Java 合并多个 Excel 文件

除了合并不同 Excel 文件中的工作表以外,Spire.XLS for Java 还支持合并一整个 Excel 工作簿。通过加载多个 Excel 文件并依次遍历它们的工作表,就能将所有内容复制到一个新的工作簿中,实现自动化汇总。核心思路是使用 getWorksheets() 方法获取每个文件中的工作表集合,并借助 addCopy() 方法将它们复制到新建的工作簿中。这样,无论文件数量多少,都能轻松完成合并操作。下面我们来看看具体的步骤解析和代码示例。

步骤

  • 设置文件路径:创建字符串数组 inputFiles,存放需要合并的多个 Excel 文件路径。
  • 创建新工作簿:实例化一个 Workbook 对象,并通过 getWorksheets().clear() 删除默认工作表,为合并内容预留空间。
  • 创建临时工作簿:实例化另一个 Workbook 对象,用于逐个加载要合并的文件。
  • 遍历并复制工作表:使用 loadFromFile() 加载每个 Excel 文件,通过 getWorksheets() 获取其中的所有工作表,并调用 addCopy() 方法将它们复制到新建工作簿中。
  • 保存结果文件:使用 saveToFile() 方法将合并后的内容输出到指定路径,生成新的 Excel 文件。

代码示例:合并两个不同的 Excel 文件

import com.spire.xls.*;

public class mergeWorkbooks {
    public static void main(String[] args){
        //录入需要合并的Excel文件的路径
        String[] inputFiles = new String[]{"E:/Administrator/Python1/input/北美人口数量前十.xlsx","E:/Administrator/Python1/input/南美人口数量前十.xlsx", "E:/Administrator/Python1/input/欧洲人口数量前十.xlsx"};

        //创建Workbook类的对象
        Workbook newBook = new Workbook();

        //删除新建工作簿中的所有工作表
        newBook.getWorksheets().clear();

        //创建另一个Workbook类的对象
        Workbook tempBook = new Workbook();

        //循环遍历Excel工作簿中的工作表,并将所有工作表复制到新建的工作簿中
        for (String file : inputFiles)
        {
            tempBook.loadFromFile(file);
            for (Object sheet : (Iterable)tempBook.getWorksheets())
            {
                newBook.getWorksheets().addCopy((Worksheet) sheet, WorksheetCopyType.CopyAll);
            }
        }

        //保存新建的工作簿
        newBook.saveToFile("E:/Administrator/Python1/output/合并工作簿.xlsx", ExcelVersion.Version2013);
    }
}

输出文件预览

总结

通过以上两种方法,我们可以在 Java 中轻松完成多个 Excel 文件的快速合并,再也不用手动去完成复制粘贴。如果你希望在项目中更加高效地处理 Excel 文档、自动化批量操作,不妨试试 Spire.XSL for Java —— 它提供了易懂且功能完善的 API,帮助你毫不费力地应对各种简单或复杂的 Excel 处理场景。

到此这篇关于Java实现快速合并Excel工作表和文件的文章就介绍到这了,更多相关Java合并Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java将文件压缩成zip并下载

    Java将文件压缩成zip并下载

    这篇文章主要为大家详细介绍了Java如何将文件压缩成zip和下载,并处理base64和url,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2025-04-04
  • SpringCloud gateway如何修改返回数据

    SpringCloud gateway如何修改返回数据

    这篇文章主要介绍了SpringCloud gateway如何修改返回数据的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 详解Spring中Bean的生命周期和作用域及实现方式

    详解Spring中Bean的生命周期和作用域及实现方式

    这篇文章主要给大家介绍了Spring中Bean的生命周期和作用域及实现方式的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Java的SpringMVC中控制器返回XML数据问题

    Java的SpringMVC中控制器返回XML数据问题

    这篇文章主要介绍了Java的SpringMVC中控制器返回XML数据问题,控制器是处理HTTP请求的组件,它们接收来自客户端的请求,并将其转换为适当的响应,这些响应可以是动态生成的 HTML 页面,也可以是JSON或XML格式的数据,需要的朋友可以参考下
    2023-07-07
  • Java抽象类概念与用法实例分析

    Java抽象类概念与用法实例分析

    这篇文章主要介绍了Java抽象类概念与用法,结合实例形式分析了java抽象类的概念、方法、特点及使用方法,需要的朋友可以参考下
    2018-02-02
  • Java中自定义类的实现详解

    Java中自定义类的实现详解

    自定义类是Java中最基本、也是最重要的组成部分之一,使用者可以根据需求创建自己的数据类型,从而更加高效地构建程序,本文就来为大家详细讲讲Java中自定义类的实现与使用吧
    2023-05-05
  • Java报错:找不到或无法加载主类的解决办法

    Java报错:找不到或无法加载主类的解决办法

    在Java中当您尝试运行一个类作为主类时,如果系统找不到该类或者无法加载该类,就会出现"找不到或无法加载主类"的错误,这篇文章主要给大家介绍了关于Java报错:找不到或无法加载主类的解决办法,需要的朋友可以参考下
    2024-12-12
  • SpringMVC中Json数据交互处理示例详解

    SpringMVC中Json数据交互处理示例详解

    这篇文章主要介绍了SpringMVC中Json数据交互处理的相关资料,分别讲解了JSON的基本概念、构成要素、数据类型、对象和数组的表示方法、字符串的转义规则以及JSON与JavaScript的关系,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Java读写文件,在文件中搜索内容,并输出含有该内容的所有行方式

    Java读写文件,在文件中搜索内容,并输出含有该内容的所有行方式

    这篇文章主要介绍了Java读写文件,在文件中搜索内容,并输出含有该内容的所有行方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • SpringBoot中最常用的5个内置对象使用方法

    SpringBoot中最常用的5个内置对象使用方法

    这篇文章主要给大家介绍了关于SpringBoot中最常用的5个内置对象使用的相关资料,在学习springboot的过程中,发现了springboot非常多的优点和特性,需要的朋友可以参考下
    2023-08-08

最新评论