使用 Java 删除 Excel 中的空白行和列

我们可以通过编程轻松地从 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 中的空白行。

使用 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++)
{
    // Access worksheets one by one
    Worksheet sheet = worksheets.get(i);
  
    // Delete the Blank Rows from the worksheet.
    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 中的空白列。

使用 Java 删除 Excel 中的空白列。

删除空白行和列时自动更新参考

删除空白行或列可能会破坏公式、图表和表格中的引用。例如,Sheet2 中的单元格 A1 有一个公式 =Sheet1!C7 引用第一个工作表的单元格 C7,如下图所示。

Sheet2 中的单元格 A1 引用 Sheet1 中单元格 C7 的值。

Sheet2 中的单元格 A1 引用 Sheet1 中单元格 C7 的值。

If we remove blank rows in Sheet1, the value of C7 (650000) will be moved to cell 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 中的行和列。我们还看到了如何在以编程方式删除行和列的同时更新引用。此外,您可以使用 documentation 了解有关 Aspose.Cells for Java API 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看