使用 Apache POI 操作 Excel 文件的 Maven 依赖及示例

在现代软件开发中,数据的存储和处理变得至关重要。Excel 作为广泛使用的数据处理工具,常常成为开发者的首选。然而,直接操作 Excel 文件可能会比较繁琐。幸运的是,Apache POI 为 Java 开发者提供了一种方便的方式来创建、读取和修改 Excel 文件。本文将介绍如何在 Maven 项目中使用 Apache POI,并提供相关代码示例。

选择 Maven 作为项目管理工具

Maven 是一个流行的项目管理工具,它为 Java 项目提供了构建、报告和文档等功能。使用 Maven 可以方便地管理项目的依赖库,使得我们在使用 Apache POI 时更加轻松。

添加 Apache POI 的 Maven 依赖

首先,我们需要在 Maven 项目的 pom.xml 文件中添加 Apache POI 的依赖。以下是配置示例:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>5.0.2</version>
    </dependency>
</dependencies>

在上述代码中,我们添加了 Apache POI 的核心库、OOXML 支持库以及 XMLBeans 依赖。保存文件后,使用 Maven 更新项目依赖。

使用 Apache POI 读写 Excel 文件

接下来,我们将通过一个简单的示例来展示如何使用 Apache POI 操作 Excel 文件。

创建 Excel 文件

下面的代码示例展示了如何创建一个新的 Excel 文件并写入数据:

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

import java.io.FileOutputStream;
import java.io.IOException;

public class CreateExcelExample {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sample Sheet");

        Row headerRow = sheet.createRow(0);
        Cell cell1 = headerRow.createCell(0);
        Cell cell2 = headerRow.createCell(1);
        cell1.setCellValue("Name");
        cell2.setCellValue("Age");

        Row row = sheet.createRow(1);
        row.createCell(0).setCellValue("Alice");
        row.createCell(1).setCellValue(30);

        try (FileOutputStream fileOut = new FileOutputStream("sample.xlsx")) {
            workbook.write(fileOut);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                workbook.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

在这个例子中,我们创建了一个包含两个列(姓名和年龄)的简单 Excel 文件并将其保存为 sample.xlsx

读取 Excel 文件

接下来,我们将演示如何读取刚刚创建的 Excel 文件:

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

import java.io.FileInputStream;
import java.io.IOException;

public class ReadExcelExample {
    public static void main(String[] args) {
        try (FileInputStream fileInputStream = new FileInputStream("sample.xlsx");
             Workbook workbook = WorkbookFactory.create(fileInputStream)) {

            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                for (Cell cell : row) {
                    switch (cell.getCellTypeEnum()) {
                        case STRING:
                            System.out.print(cell.getStringCellValue() + "\t");
                            break;
                        case NUMERIC:
                            System.out.print(cell.getNumericCellValue() + "\t");
                            break;
                        default:
                            System.out.print("UNKNOWN\t");
                    }
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个例子中,我们从 sample.xlsx 文件中读取数据并将其打印到控制台。

关系图

下面是 Apache POI 及其主要类之间的关系图:

erDiagram
    Workbook ||--o{ Sheet : contains
    Sheet ||--o{ Row : contains
    Row ||--o{ Cell : contains

这个关系图显示了 WorkbookSheetRowCell 之间的关系,说明了它们是如何层层包含的。

状态图

操作 Excel 文件的状态图如下所示,展示了读取和写入过程中的状态转移:

stateDiagram
    [*] --> Idle
    Idle --> Creating : create file
    Creating --> Writing : write data
    Writing --> Idle : save file
    Idle --> Reading : read file
    Reading --> [*] : display data

在这个状态图中,我们展示了 Excel 文件的创建、写入和读取的不同状态。

总结

通过上述示例,我们可以看到 Apache POI 是一个强大的库,它能够简化在 Java 中读写 Excel 文件的过程。使用 Maven 管理依赖使得这个过程更加高效。我们希望你能在自己的项目中应用这些知识,轻松处理 Excel 文件。

如需进一步扩展,你可以探讨更多 Apache POI 提供的功能,例如格式化单元格、创建图表等。无论是个人项目还是企业级应用,Apache POI 都能够满足你的需求。希望本文对你有所启发!