Java 导入 Excel 删除空行的指南

在信息系统中,处理 Excel 文件是一个非常常见的任务。今天,我将教你如何使用 Java 程序导入 Excel 文件并删除其中的空行。我们将采用 Apache POI 库,这是一个强大的工具,可以轻松读取和写入 Microsoft Office 文件。接下来,我们将逐步了解整个流程。

整体流程

以下是整个流程的步骤:

步骤 描述
1 添加 Apache POI 库依赖
2 读取 Excel 文件
3 检查并删除空行
4 保存修改后的 Excel 文件

流程图表示

我们可以用流程图来直观地理解这个过程:

flowchart TD
    A[添加 Apache POI 库依赖] --> B[读取 Excel 文件]
    B --> C[检查并删除空行]
    C --> D[保存修改后的 Excel 文件]

每一步的具体实现

1. 添加 Apache POI 库依赖

首先,我们需要在项目中添加 Apache POI 的依赖。如果你使用 Maven 构建项目,请在 pom.xml 中添加以下内容:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version> <!-- 请确认使用最新版本 -->
</dependency>

说明: 这里引入了 Apache POI 的核心库,以便在项目中使用。

2. 读取 Excel 文件

接下来,我们将创建一个 Java 类用于读取 Excel 文件。以下是如何完成这一步的代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelHandler {

    public static void main(String[] args) {
        // Excel 文件的路径
        String excelFilePath = "path/to/your/excel/file.xlsx";
        try {
            // 读取 Excel 文件
            FileInputStream fileInputStream = new FileInputStream(new File(excelFilePath));
            Workbook workbook = new XSSFWorkbook(fileInputStream);
            // 处理 Excel 表格
            removeEmptyRows(workbook);
            // 保存修改后的表格
            saveWorkbook(workbook, excelFilePath);
            // 关闭文件输入流
            fileInputStream.close();
            System.out.println("空行已删除并保存成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

说明: 这段代码首先打开指定路径的 Excel 文件,并创建一个 Workbook 对象来进行后续操作。

3. 检查并删除空行

ExcelHandler 类中,我们将实现一个名叫 removeEmptyRows 的方法来遍历表格,并删除空行。

private static void removeEmptyRows(Workbook workbook) {
    // 获取第一个工作表
    Sheet sheet = workbook.getSheetAt(0);
    // 反向遍历行,以避免由于行被删除而导致的索引问题
    for (int i = sheet.getPhysicalNumberOfRows() - 1; i >= 0; i--) {
        Row row = sheet.getRow(i);
        if (isRowEmpty(row)) {
            sheet.removeRow(row); // 删除空行
        }
    }
}

// 检查行是否为空
private static boolean isRowEmpty(Row row) {
    if (row == null) {
        return true;
    }
    for (Cell cell : row) {
        if (cell.getCellType() != CellType.BLANK) {
            return false; // 如果有非空单元格,则行非空
        }
    }
    return true; // 所有单元格均为空
}

说明: 在 removeEmptyRows 方法中,反向遍历行可以避免删除行时引发的索引混淆。通过 isRowEmpty 方法检查每一行是否为空。

4. 保存修改后的 Excel 文件

最后,我们需要保存修改后的 Excel 文件。

private static void saveWorkbook(Workbook workbook, String filePath) {
    try {
        FileOutputStream fileOutputStream = new FileOutputStream(new File(filePath));
        workbook.write(fileOutputStream); // 写入文件
        fileOutputStream.close();
        workbook.close(); // 关闭工作簿
    } catch (IOException e) {
        e.printStackTrace();
    }
}

说明: 这段代码将修改后的 Excel 文件写入硬盘上。

结尾

到此为止,我们已经完成了如何使用 Java 导入 Excel 文件并删除空行的所有步骤。通过引入 Apache POI 库、读取文件、检查并删除空行以及保存修改后的文件,你现在可以高效地处理 Excel 数据。希望这对你今后的开发工作有所帮助!如果你有任何疑问或需要进一步的帮助,欢迎随时联系。