Java POI读取xlsx文件教程

1. 流程概述

本教程将教你如何使用Java POI库来读取xlsx文件。下面是整个流程的步骤概述:

graph TD
A(开始) --> B(导入POI库)
B --> C(创建文件输入流)
C --> D(创建工作簿对象)
D --> E(获取第一个工作表)
E --> F(获取工作表的行数)
F --> G(遍历每一行的单元格)
G --> H(获取单元格的值)
H --> I(打印单元格的值)
I --> J(结束)

2. 步骤详解

2.1 导入POI库

首先,你需要在你的Java项目中导入POI库。在你的项目的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

2.2 创建文件输入流

接下来,你需要创建一个文件输入流来读取xlsx文件。你需要提供文件的路径作为参数。以下是示例代码:

FileInputStream fileInputStream = new FileInputStream("path/to/your/file.xlsx");

2.3 创建工作簿对象

在创建文件输入流后,你需要创建一个工作簿对象来表示整个xlsx文件。使用POI库提供的XSSFWorkbook类来创建工作簿对象,以下是示例代码:

XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);

2.4 获取第一个工作表

接下来,你需要获取xlsx文件中的第一个工作表。使用工作簿对象的getSheetAt()方法来获取指定索引的工作表,索引从0开始。以下是示例代码:

XSSFSheet sheet = workbook.getSheetAt(0);

2.5 获取工作表的行数

在获取工作表后,你需要知道工作表中有多少行数据。使用工作表对象的getLastRowNum()方法来获取最后一行的索引,然后加1得到总行数。以下是示例代码:

int rowCount = sheet.getLastRowNum() + 1;

2.6 遍历每一行的单元格

现在,你可以遍历每一行的单元格并获取它们的值。使用工作表对象的getRow()方法来获取指定索引的行,然后使用行对象的getCell()方法来获取指定索引的单元格。以下是示例代码:

for (int i = 0; i < rowCount; i++) {
    XSSFRow row = sheet.getRow(i);
    // 遍历每一行的单元格
    for (int j = 0; j < row.getLastCellNum(); j++) {
        XSSFCell cell = row.getCell(j);
        // 获取单元格的值并打印
        String cellValue = cell.getStringCellValue();
        System.out.println(cellValue);
    }
}

2.7 打印单元格的值

在遍历每一行的单元格后,我们可以获取每个单元格的值并进行相应的操作。在示例代码中,我们将值打印到控制台上。你可以根据自己的需求进行进一步的处理。以下是示例代码:

String cellValue = cell.getStringCellValue();
System.out.println(cellValue);

3. 总结

通过本教程,你学会了使用Java POI库读取xlsx文件的基本步骤。首先,你需要导入POI库并创建文件输入流。然后,你可以创建工作簿对象和获取工作表。接下来,你可以遍历每一行的单元格和获取它们的值。最后,你可以根据需要对单元格的值进行处理。希望这篇教程能帮助到你!