当前位置: 首页 > news >正文

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

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

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

Java 合并 Excel 工作表

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

使用 Java 合并多个 Excel 工作表的步骤:

  1. 创建主工作簿:使用 Workbook 对象并删除默认工作表,通过 getWorksheets().add() 新建一个用于保存合并结果的工作表。

  2. 加载源文件:分别创建临时 Workbook 对象,使用 loadFromFile() 方法加载要合并的 Excel 文件。

  3. 获取并复制数据:通过 getWorksheets().get(0) 获取每个文件中的目标工作表,使用 getAllocatedRange().copy() 将其内容复制到主工作簿的新工作表中。

  4. 调整粘贴位置:利用 getLastRow() 方法确定下一次粘贴的起始行,确保多个文件数据依次排列而不被覆盖。

  5. 保存结果文件:调用 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 工作表

Java 合并多个 Excel 文件

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

使用 Java 合并 Excel 文件的步骤:

  • 设置文件路径:创建字符串数组 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 文件为一个新的文件

总结

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

http://www.jsqmd.com/news/33878/

相关文章:

  • 2025年回收图像传感器索尼SONY机构权威推荐榜单:回收传感器模块/回收西门子PLC模块/回收电子呆滞物料源头机构精选
  • 2025年腻子粉生产厂家权威推荐榜单:防水腻子粉/抗裂腻子粉/外墙柔性腻子粉源头厂家精选
  • 2025年11月小型电梯品牌十大榜:主流型号对比排行及选购要点解读
  • 代码检测器!一款专门揭露屎山代码的质量分析工具!
  • 2025年口碑好的涤纶单层网布最新TOP品牌厂家排行
  • 构建智能医疗诊断助手:基于 LangGraph 和 DeepSeek 的实践指南
  • 2025年知名的桉木单板烘干机行业内口碑厂家排行榜
  • 2025年知名的汽车涂装生产线厂家最新TOP排行榜
  • 2025年11月小型电梯品牌十大对比榜:最新评测与选购要点全解读
  • 基于MATLAB的直接序列扩频(DSSS)通信系统实现
  • 视频转ppt/pdf V2.0版(新增转为可编辑PPT功能)
  • 2025年比较好的水电镀表面处理实力厂家TOP推荐榜
  • 2025年质量好的中草药粉碎机最新TOP品牌厂家排行
  • 【2025-11-06】全运会限行
  • 2025年知名的医用无菌针电极厂家最新热销排行
  • 动态引入图片路径写法
  • The “Next“_2-从洞察到行动 - 教程
  • 2025年11月珠海酒店评价榜单:十大热门住宿详细分析与实用推荐
  • 2025国产制品库新选择:全方位对比,为何它成为企业替代JFrog的首选?
  • 2025年质量好的双螺杆挤出机厂家最新权威推荐排行榜
  • 2025年比较好的灯饰电器开关用户口碑最好的厂家榜
  • 2025年热门汉堡品牌推荐排行榜:汉堡品牌有哪些
  • 2025年口碑好的电动汽车充电桩厂家推荐及选择指南
  • 国产麒麟、uos在线编辑数据库中的文件
  • 2025年11月食品展会推荐榜单:专业展会对比与选购指南
  • 2025 年上海勇顺电力设备安装公司:电力服务权威测评出炉 核心优势与行业口碑全面盘点
  • 2025 年 11 月精密钢球,440C 不锈钢球,420 不锈钢球厂家最新推荐,技术实力与市场口碑深度解析!
  • 2025年质量好的pa66隔热条厂家最新用户好评榜
  • 2025年企业邮箱服务推荐:企业邮箱选哪家?5大主流服务商深度解析
  • ollama 提示词超过一定长度会被截断 - Milo