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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入理解Mybatis中的resultType和resultMap

    深入理解Mybatis中的resultType和resultMap

    这篇文章给大家介绍了mybatis中的resultType和resultMap的用法实例讲解,MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,至于两种用法区别,通过本文一起学习吧
    2016-09-09
  • Java使用MulticastSocket实现群聊应用程序

    Java使用MulticastSocket实现群聊应用程序

    这篇文章主要为大家详细介绍了Java使用MulticastSocket实现群聊应用程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Java中Record的应用小结

    Java中Record的应用小结

    Java Record是Java 14引入的不可变数据载体,能自动生成模板代码,下面就来介绍一下Java中Record的应用,感兴趣的可以了解一下
    2025-08-08
  • mybatis之批量添加问题

    mybatis之批量添加问题

    这篇文章主要介绍了mybatis之批量添加问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 半小时通透Java的泛型

    半小时通透Java的泛型

    这篇文章主要给大家介绍了关于Java中泛型使用的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2021-09-09
  • 在SpringBoot当中使用Thymeleaf视图解析器的详细教程

    在SpringBoot当中使用Thymeleaf视图解析器的详细教程

    Thymeleaf是一款开源的模板引擎,它允许前端开发者使用HTML与XML编写动态网页,hymeleaf的主要特点是将表达式语言嵌入到HTML结构中,它支持Spring框架,使得在Spring MVC应用中集成非常方便,本文给大家介绍了在SpringBoot当中使用Thymeleaf视图解析器的详细教程
    2024-09-09
  • java swing 创建一个简单的QQ界面教程

    java swing 创建一个简单的QQ界面教程

    这篇文章主要介绍了java swing 创建一个简单的QQ界面教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 使用Java实现HTTP和HTTPS代理服务详解

    使用Java实现HTTP和HTTPS代理服务详解

    这篇文章主要为大家详细介绍了如何使用Java实现HTTP和HTTPS代理服务,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • idea中如何过滤某些文件不提交的方法实现

    idea中如何过滤某些文件不提交的方法实现

    本文主要介绍了idea中如何过滤某些文件不提交,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java代码为例讲解堆的性质和基本操作以及排序方法

    Java代码为例讲解堆的性质和基本操作以及排序方法

    堆数据结构可以看作一颗完全二叉树,因而又被成为二叉堆,这里我们以Java代码为例讲解堆的性质和基本操作以及排序方法,需要的朋友可以参考下
    2016-06-06

最新评论