写点什么

如何在 Java 程序中合并和拆分 Excel 文档

作者:Geek_249eec
  • 2023-01-05
    四川
  • 本文字数:2018 字

    阅读完需:约 7 分钟

当我们需要储存或者计算大量数据时,常常会使用到 Excel 文档。一般情况下,一个工作簿中可以存在多个工作表以储存不同类别的数据内容。在分类整理文档时,我们不免会对 Excel 文档进行一些操作:例如将 Excel 文档按照工作表进行拆分;亦或是将同一类型的工作表整合至一个工作簿中。下面我就将介绍通过Free Spire.XLS for Java在 Java 程序中合并和拆分 Excel 文档的具体操作方法和代码。

操作前请先安装 Free Spire.XLS for Java

方法一:

如果您使用的是 maven,可以通过添加以下代码到项目的 pom.xml 文件中,将 JAR 文件导入到应用程序中。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>
复制代码

方法二:

如果您没有使用 maven,则可以此链接下载 Free Spire.XLS for Java,下载完成后,将下载包进行解压;然后在 IDEA 中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR 文件或路径”(JARs or Directories),找到之前解压好的文件,并将其中的 lib 文件夹下的 Spire.XLS.jar 文件导入到项目中。


拆分 Excel 文档的方法及步骤

  • 首先创建 Workbook 类的对象。

  • 再使用 Workbook.loadFromFile() 方法载入 Excel 文件。

  • 声明一个 Workbook 类的变量用于创建新的工作簿。

  • 遍历工作簿中的所有工作表。

  • 初始化 Workbook 类的对象,并将该工作簿中的一个工作表复制到新的工作簿中。

  • 最后用 Workbook.saveToFile() 方法保存工作簿。

 

代码:

import com.spire.xls.FileFormat;import com.spire.xls.Workbook;
public class splitWorkbook {
public static void main(String[] args) {
//创建Workbook类的对象 Workbook wb = new Workbook();
//载入Excel文件 wb.loadFromFile("sample.xlsx");
//声明一个Workbook类的变量 Workbook newWb;
//声明一个String类的变量 String sheetName;
//指定生成的Excel文件的保存目录 String folderPath = "output\\";
//遍历工作簿中的所有工作表 for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
//初始化Workbook类的对象 newWb = new Workbook();
//删除工作簿中的工作表 newWb.getWorksheets().clear();
//将工作簿的工作表复制到新的工作簿中 newWb.getWorksheets().addCopy(wb.getWorksheets().get(i));
//获取工作表的名称 sheetName = wb.getWorksheets().get(i).getName();
//将新工作簿保存到指定的文件夹 newWb.saveToFile(folderPath + sheetName + ".xlsx", FileFormat.Version2013); } }}
复制代码


合并工作簿的方法及步骤

  • 创建一个 String[] 类的对象,并输入要合并的工作簿的地址。

  • 创建一个 Workbook 类的对象。

  • 使用 Workbook.getWorksheets().clear() 方法来删除新建工作簿中的所有工作表。

  • 创建另一个 Workbook 类的对象。

  • 遍历输入工作簿中的工作表,并使用 Workbook.getWorksheets().addCopy() 方法将所有工作表复制到新建的工作簿中。

  • 使用 Workbook.saveToFile() 方法保存新建的工作簿。

 

代码:

import com.spire.xls.*;
public class mergeWorkbooks { public static void main(String[] args){ //录入需要合并的Excel文件的路径 String[] inputFiles = new String[]{"output/sheet1.xlsx","output/sheet2.xlsx", "output/sheet3.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("sample.xlsx", ExcelVersion.Version2013); }}
复制代码



用户头像

Geek_249eec

关注

还未添加个人签名 2022-07-13 加入

还未添加个人简介

评论

发布
暂无评论
如何在Java程序中合并和拆分Excel文档_Java_Geek_249eec_InfoQ写作社区