通过指定路径读取xlsx文件的步骤

简介

在Java开发中,我们经常需要读取Excel文件来获取数据。本文将介绍如何使用Java通过指定路径读取xlsx文件。整个流程可以分为以下几个步骤:

  1. 引入相关依赖
  2. 创建Workbook对象
  3. 获取Sheet对象
  4. 遍历Sheet对象,读取数据
  5. 关闭资源

接下来我们将详细介绍每个步骤需要做什么,并提供相应的代码示例。

步骤一:引入相关依赖

在使用Java读取xlsx文件之前,我们需要引入相关的依赖。这里我们使用Apache POI库来实现对xlsx文件的读取。请在项目的pom.xml文件中添加以下依赖:

<dependencies>
    <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>
</dependencies>

步骤二:创建Workbook对象

在Java中,我们可以使用Workbook对象来表示一个Excel文件。根据文件的格式不同,我们可以选择使用HSSFWorkbookXSSFWorkbook来创建相应的Workbook对象。

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

public class ReadExcel {
    public static void main(String[] args) {
        // 指定xlsx文件路径
        String filePath = "path/to/your/file.xlsx";
        
        // 创建XSSFWorkbook对象
        Workbook workbook = new XSSFWorkbook(filePath);
        
        // 其他操作...
        
        // 关闭Workbook对象
        workbook.close();
    }
}

这段代码首先指定了xlsx文件的路径,然后创建了一个XSSFWorkbook对象来表示该文件。如果你要读取的是xls文件,可以使用HSSFWorkbook对象来代替。

步骤三:获取Sheet对象

在Excel文件中,我们可以将数据保存在不同的Sheet中。因此,我们需要获取指定的Sheet对象来读取其中的数据。Workbook对象提供了多种方法来获取Sheet对象,比如通过索引、通过名称等。

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

public class ReadExcel {
    public static void main(String[] args) {
        // 指定xlsx文件路径
        String filePath = "path/to/your/file.xlsx";
        
        // 创建XSSFWorkbook对象
        Workbook workbook = new XSSFWorkbook(filePath);
        
        // 获取第一个Sheet对象
        Sheet sheet = workbook.getSheetAt(0);
        
        // 其他操作...
        
        // 关闭Workbook对象
        workbook.close();
    }
}

在上述代码中,我们使用getSheetAt(0)方法来获取第一个Sheet对象,索引从0开始。你也可以使用getSheet("SheetName")方法通过名称获取指定的Sheet对象。

步骤四:遍历Sheet对象,读取数据

获取到Sheet对象后,我们可以使用RowCell来遍历并读取其中的数据。

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

public class ReadExcel {
    public static void main(String[] args) {
        // 指定xlsx文件路径
        String filePath = "path/to/your/file.xlsx";
        
        // 创建XSSFWorkbook对象
        Workbook workbook = new XSSFWorkbook(filePath);
        
        // 获取第一个Sheet对象
        Sheet sheet = workbook.getSheetAt(0);
        
        // 遍历Sheet对象
        for (Row row : sheet) {
            for (Cell cell : row) {
                // 读取单元格数据
                CellType cellType = cell.getCellType();
                if (cellType == CellType.STRING) {
                    String cellValue = cell.getStringCellValue();
                    System.out.println(cellValue);
                } else if (cellType == CellType.NUMERIC) {
                    double cellValue = cell.getNumericCellValue();
                    System.out.println(cellValue);
                }
            }
        }
        
        // 其他操作...
        
        // 关闭Workbook对象
        workbook.close();
    }
}

在上述代码中,我们使用两个嵌套的循环来遍历Sheet中的每个单元格。通过getCellType()方法可以获取单元格的数据类型,然后根据不同的数据类型使用相应的方法来获取数据