将多个 Excel 工作簿合并成一个工作簿可以方便我们对数据进行查看,同时也便于我们对这些工作簿中的数据进行操作。但在分享包含有多个工作表的 Excel 文档给他人时,时常会出现某些工作表中的内容不便分享的情况。我们可以通过将 Excel 文档中的每个工作表拆分为单个工作簿来解决。本文将介绍如何使用 Spire.XLS for Java 通过代码拆分或合并 Excel 文档。
安装 Spire.XLS for Java
首先,您需要在 Java 程序中添加 Spire.Xls.jar 文件作为一个依赖项。您可以从此链接下载 JAR 文件。如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码轻松导入该 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>15.1.3</version>
</dependency>
</dependencies>
将 Excel 工作簿中的每个工作表拆分为单个工作簿
拆分工作簿可以通过使用 Workbook.getWorksheets().addCopy() 方法将原工作簿中的每个工作表复制到新的工作簿中并保存来实现。详细操作步骤如下:
- 创建 Workbook 类的对象。
- 用 Workbook.loadFromFile() 方法载入 Excel 文件。
- 声明一个 Workbook 类的变量用于创建新的工作簿。
- 循环遍历载入的工作簿中的所有工作表。初始化 Workbook 类的对象,并将载入的工作簿中的一个工作表复制到新的工作簿中。最后用 Workbook.saveToFile() 方法保存工作簿。
- Java
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("资产负债表.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);
}
}
}
将多个 Excel 工作簿合并为一个工作簿
合并工作簿也需要用到 Workbook.getWorksheets().addCopy() 方法,将所有导入的工作簿的所有工作表复制到一个新的工作簿中并保存为新的文件,即可完成工作簿的合并。详细操作步骤如下:
- 创建一个 String[] 类的对象,并录入要合并的工作簿的地址。
- 创建一个 Workbook 类的对象。
- 使用 Workbook.getWorksheets().clear() 方法来删除新建工作簿中的所有工作表。
- 创建另一个 Workbook 类的对象。
- 循环遍历录入的工作簿中的工作表,并使用 Workbook.getWorksheets().addCopy() 方法将所有工作表复制到新建的工作簿中。
- 使用 Workbook.saveToFile() 方法保存新建的工作簿。
- Java
import com.spire.xls.*;
public class mergeWorkbooks {
public static void main(String[] args){
//录入需要合并的Excel文件的路径
String[] inputFiles = new String[]{"output/摘要.xlsx","output/资产.xlsx", "output/负债和所有者权益.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("合并工作簿.xlsx", ExcelVersion.Version2013);
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。