Java 复制 Excel 工作表:告别手动,拥抱自动化!

在日常工作中,处理Excel文件是常态,而手动复制工作表或其内容不仅耗时,还容易出错。当面对大量数据处理、报表自动化生成或数据迁移等场景时,通过 Java 复制 Excel 工作表就成了不可或缺的技能。本文将详细介绍如何使用强大的 Spire.XLS for Java 库,轻松实现 Excel 工作表的自动化复制,助您高效完成任务。

Spire.XLS for Java 简介与安装

Spire.XLS for Java 是一个功能强大、易于使用的 Java Excel API,专为开发者设计,用于创建、读取、编辑和转换 Excel 文件。它支持多种 Excel 版本(XLS、XLSX、CSV、ODS等),提供了丰富的特性,包括但不限于数据操作、图表、图片、公式、批注等,是实现 Excel 自动化处理的理想选择。

Maven 依赖配置:

您可以通过在 pom.xml 文件中添加以下 Maven 依赖来集成 Spire.XLS for Java:

              
    
        com.e-iceblue
        e-iceblue
        https://repo.e-iceblue.cn/repository/maven-public/
    



    
        e-iceblue
        spire.xls
        15.7.7
    

添加依赖后,Maven 会自动下载所需库文件。在您的 Java 代码中,只需导入相应的类即可开始使用。

在同一个 Excel 工作簿里复制工作表

当您需要在同一个 Excel 文件中复制现有工作表时,Spire.XLS 提供了简洁的方法。这常用于创建模板副本或备份特定数据。

              import com.spire.xls.*;

public class Copy1 {
    public static void main(String[] args) {
        //加载文档
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //获取第一张工作表
        Worksheet sheet0 = wb.getWorksheets().get(0);

        //获取第三张工作表,命名,并将第一张工作表内容复制到该工作表
        Worksheet sheet2 = wb.getWorksheets().get(2);
        sheet2.setName("Copiedsheet");
        sheet2.copyFrom(sheet0);

        //保存文档
        wb.saveToFile("Copy1.xlsx",FileFormat.Version2013);
    }
}

代码解释:

  • 我们首先加载一个现有的 Excel 文件。
  • 通过 Workbook.getWorksheets().get(0) 分别获取两个单元格作为源和目标。
  • 使用 Worksheet.copyFrom() 方法,即可将源工作表复制到目标工作表。

从不同工作簿中复制工作表

有时,您可能需要将一个 Excel 文件中的工作表复制到另一个不同的 Excel 文件中,实现跨文件的数据迁移或整合。

              import com.spire.xls.*;

public class Copy2 {
    public static void main(String[] args) {
        //加载文档1,并获取第一张工作表
        Workbook wb1 = new Workbook();
        wb1.loadFromFile("test1.xlsx");
        Worksheet sheet1 = wb1.getWorksheets().get(0);

        //加载文档2,获取第三张工作表,并将文档1中的工作表内容复制到该工作表
        Workbook wb2 = new Workbook();
        wb2.loadFromFile("test2.xlsx");
        Worksheet sheet2 = wb2.getWorksheets().get(2);
        sheet2.setName("Copied");
        sheet2.copyFrom(sheet1);

        //保存文档
        wb2.saveToFile("Copy2.xlsx",FileFormat.Version2013);
    }
}

代码解释:

  • 分别加载源 Excel 和目标 Excel 文件。
  • 通过 Workbook.getWorksheets().get() 方法分别获取不同工作簿中的多个工作表。
  • 调用 Worksheet.copyFrom() 方法,将源工作表复制到目标工作簿中,并使用 Worksheet.setName() 方法赋予新名称。

拓展延伸:在同一工作表中复制单元格

除了复制整个工作表,Spire.XLS 也支持在同一工作表中复制特定单元格区域的内容,这对于局部数据整理非常有用。

              import com.spire.xls.*;

public class CopyRange {
    public static void main(String[] args) {
        //加载文档
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

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

        //复制指定单元格范围中的数据
        CellRange range1 = sheet.getCellRange(8,1,8,7);
        CellRange range2 = sheet.getCellRange(11,1,11,7);
        sheet.copy(range1,range2,true);

        //保存文档
        wb.saveToFile("CopyRange.xlsx",FileFormat.Version2013);
    }
}

代码解释:

  • 加载 Excel 文件并获取目标工作表。
  • 使用 Worksheet.getCellRange() 方法定义源和目标单元格区域。
  • 调用 CellRange.copy() 方法即可将源区域的所有内容(包括值、格式、公式等)复制到目标区域。

结语

通过本文的介绍,您应该已经掌握了如何通过 Java 复制 Excel 工作表,以及如何在 Spire.XLS for Java 的帮助下进行跨文件复制和单元格区域复制。Spire.XLS 库凭借其直观的API和强大的功能,极大地简化了 Java Excel 自动化开发。无论是进行数据报表生成、复杂数据迁移,还是其他 Excel 自动化任务,Spire.XLS 都能提供高效、可靠的解决方案。希望这篇教程能帮助您提升工作效率,告别繁琐的手动操作!

.preview-wrapper pre::before { position: absolute; top: 0; right: 0; color: #ccc; text-align: center; font-size: 0.8em; padding: 5px 10px 0; line-height: 15px; height: 15px; font-weight: 600; } .hljs.code__pre > .mac-sign { display: flex; } .code__pre { padding: 0 !important; } .hljs.code__pre code { display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; text-indent: 0; }

版权声明:
作者:siwei
链接:https://www.techfm.club/p/224569.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>