使用Java读取Excel文件的方法之一: Apache POI

在日常开发中,我们经常需要读取和处理Excel文件中的数据。Apache POI是一个流行的Java库,可以帮助我们实现Excel文件的读写操作。在本文中,我们将介绍如何使用Apache POI来读取Excel文件中的数据。

Apache POI简介

Apache POI是Apache软件基金会的一个开源项目,提供了用于操作Microsoft Office格式文件(如Excel、Word、PowerPoint)的Java库。它包含了一组类和方法,可以帮助我们创建、读取和修改Office文档。其中,HSSF和XSSF是Apache POI中用于处理Excel文件的两个重要组件。

  • HSSF(Horrible SpreadSheet Format):用于处理Excel 97-2003格式的文件(.xls)。
  • XSSF(XML SpreadSheet Format):用于处理Excel 2007版本以后的文件(.xlsx)。

使用POI读取Excel文件

在开始读取Excel文件之前,我们需要添加Apache POI库的依赖。您可以在Maven项目中添加以下依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.4</version>
</dependency>

接下来,我们将编写一个简单的示例代码来演示如何读取Excel文件中的数据。假设我们有一个名为data.xlsx的Excel文件,其中包含了一些学生的信息,如学号、姓名、年龄等。

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

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

public class ExcelReader {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("data.xlsx");
             Workbook workbook = WorkbookFactory.create(fis)) {
            Sheet sheet = workbook.getSheetAt(0);

            for (Row row : sheet) {
                for (Cell cell : row) {
                    System.out.print(cell + "\t");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们使用FileInputStream将Excel文件加载到内存中,然后通过WorkbookFactory.create(fis)创建Workbook对象。接着,获取第一个工作表(Sheet),并遍历每一行和每一个单元格,打印出单元格的值。

类图

下面是使用mermaid语法绘制的Apache POI中的类图:

classDiagram
    class Workbook
    class Sheet
    class Row
    class Cell

    Workbook <|-- Sheet
    Sheet <-- Row
    Row <-- Cell

在这个类图中,Workbook表示一个Excel工作簿,Sheet表示一个工作表,Row表示一行数据,Cell表示一个单元格。

序列图

下面是使用mermaid语法绘制的读取Excel文件时的序列图:

sequenceDiagram
    participant Client
    participant ExcelReader
    participant FileInputStream
    participant Workbook
    participant Sheet
    participant Row
    participant Cell

    Client ->> ExcelReader: 启动程序
    ExcelReader ->> FileInputStream: 加载文件
    FileInputStream ->> Workbook: 创建Workbook对象
    Workbook ->> Sheet: 获取第一个工作表
    Sheet ->> Row: 遍历行数据
    Row ->> Cell: 遍历单元格数据
    Cell ->> ExcelReader: 获取单元格值

在这个序列图中,展示了从客户端启动程序到ExcelReader类读取Excel文件数据的整个流程。

结论

通过本文的介绍,我们了解了如何使用Apache POI来读取Excel文件中的数据,并且展示了相关的类图和序列图。Apache POI提供了丰富的API,可以帮助我们轻松地处理Excel文件,是Java开发中的一项强大工具。希望本文对您有所帮助,谢谢阅读!