
我们可以通过编程轻松地从 Excel 工作表中删除空白行和列。在本文中,我们将学习如何使用 Java 删除 Excel 中的空白行和列。
本文将涵盖以下主题:
用于删除 Excel 中的空白行和列的 Java API
为了从 XLSX 文件中删除空白行和列,我们将使用 Aspose.Cells for Java API。请下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>21.11</version>
</dependency>
使用 Java 删除 Excel 中的空白行
我们可以按照以下步骤以编程方式从 Excel 工作表中删除空白行:
- 首先,使用 Workbook 类加载一个 Excel 文件。
- 接下来,调用 Workbook.getWorksheets() 方法并在 WorksheetCollection 对象中获取工作表。
- 然后,按索引(从零开始)或按名称访问具有空白行的工作表。
- 之后,调用 Cells.deleteBlankRows() 方法从访问的工作表中删除空白行。
- 最后,调用带有输出文件路径的save()方法保存输出文件。
以下示例代码显示了如何使用 Java 从 Excel 中删除空白行。
// 加载现有的 Excel 文件。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");
// 获取电子表格中的工作表集合。
WorksheetCollection sheets = workbook.getWorksheets();
// 通过索引从 WorksheetCollection 中获取第一个 Worksheet。
Worksheet sheet = sheets.get(0);
// 或按名称。
// 工作表 sheet = sheet.get("Sheet1");
// 从工作表中删除空白行。
sheet.getCells().deleteBlankRows();
// 保存更新的 Excel 文件。
workbook.save("C:\\Files\\Cells\\output.xlsx");

使用 Java 删除 Excel 中的空白行。
同样,我们可以从 Excel 文档中的所有工作表中删除空白行。我们将简单地遍历 WorksheetCollection 并在每个工作表上调用 deleteBlankRows() 方法,如以下代码示例所示:
// 打开现有的 Excel 文件。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");
// 获取工作表集合
WorksheetCollection worksheets = workbook.getWorksheets();
// 遍历工作表。
for (int i=0; i<worksheets.getCount(); i++)
{
// 一张一张地访问工作表
Worksheet sheet = worksheets.get(i);
// 从工作表中删除空白行。
sheet.getCells().deleteBlankRows();
}
// 保存更新的 Excel 文件。
workbook.save("C:\\Files\\Cells\\output.xlsx");
使用 Java 删除 Excel 中的空白列
我们可以按照以下步骤以编程方式从 Excel 工作表中删除空白列:
- 首先,使用 Workbook 类加载一个 Excel 文件。
- 接下来,调用 Workbook.getWorksheets() 方法并在 WorksheetCollection 对象中获取工作表。
- 然后,通过索引(从零开始)或名称访问具有空白列的工作表。
- 之后,调用 Cells.deleteBlankColumns() 方法从访问的工作表中删除空白列。
- 最后,调用带有输出文件路径的save()方法保存输出文件。
以下示例代码显示了如何使用 Java 从 Excel 中删除空白列。
// 打开现有的 Excel 文件。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");
// 获取电子表格中的工作表集合。
WorksheetCollection sheets = workbook.getWorksheets();
// 通过索引从 WorksheetCollection 中获取第一个 Worksheet。
Worksheet sheet = sheets.get(2);
// 删除空白列。
sheet.getCells().deleteBlankColumns(options);
// 保存更新的 Excel 文件。
workbook.save("C:\\Files\\Cells\\output_DeleteBlankColumns.xlsx");

使用 Java 删除 Excel 中的空白列。
删除空白行和列时自动更新参考
删除空白行或列可能会破坏公式、图表和表格中的引用。例如,Sheet2 中的单元格 A1 有一个公式 =Sheet1!C7,它引用了第一个工作表的单元格 C7,如下图所示。

Sheet2 中的单元格 A1 引用 Sheet1 中单元格 C7 的值。
如果我们删除 Sheet1 中的空白行,则 C7 (650000) 的值将移动到单元格 C6。但公式 (=Sheet1!C7) 不会更新,单元格 A1 将显示 C7 的值,在这种情况下为 550000。我们可以通过将 DeleteOptions.setUpdateReference 设置为 true 来避免这个问题。它将确保在删除空白行时更新引用。
我们可以按照以下步骤以编程方式从 Excel 工作表中删除空白行时自动更新引用:
- 首先,使用 Workbook 类加载一个 Excel 文件。
- 接下来,调用 Workbook.getWorksheets() 方法并在 WorksheetCollection 对象中获取工作表。
- 然后,按索引(从零开始)或按具有空白行的名称访问工作表。
- 接下来,创建 DeleteOptions 类的实例
- 然后,调用 setUpdateReferences() 为真。它将在删除空白行的同时更新其他工作表中的引用。
- 之后,使用 DeleteOptions 对象作为参数调用 Cells.deleteBlankRows() 方法,以从访问的工作表中删除空白行。
- 最后,调用带有输出文件路径的save()方法保存输出文件。
以下示例代码显示了如何在删除 Excel 中的空白行时更新引用。
// 打开现有的 Excel 文件。
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");
// 获取电子表格中的工作表集合。
WorksheetCollection sheets = workbook.getWorksheets();
// 通过索引从 WorksheetCollection 中获取第一个 Worksheet。
Worksheet sheet = sheets.get(0);
// 此选项将确保引用(在公式、图表中)
// 在删除空白行时更新。
DeleteOptions options = new DeleteOptions();
options.setUpdateReference(true);
// 从工作表中删除空白行。
sheet.getCells().deleteBlankRows(options);
// 保存更新的 Excel 文件。
workbook.save("C:\\Files\\Cells\\output_UpdateReferencesAutomatically.xlsx");
同样,我们可以在删除 Excel 中的空白列的同时更新引用。但是,我们只需要使用 DeleteOptions 作为参数调用 deleteBlankColumns() 方法。
获得免费许可证
请通过申请 免费的临时许可证 来尝试不受评估限制的 API。
结论
在本文中,我们学习了如何使用 Java 在 Excel 中删除行和列。我们还看到了如何在以编程方式删除行和列的同时更新引用。此外,您可以使用 文档 了解更多关于 Aspose.Cells for Java API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。