Java 实现读取 Excel 工作簿的教程

在本教程中,我们将学习如何使用 Java 读取 Excel 文件。我们将使用 Apache POI 库,这是一个强大的 Java 库,专门用于阅读和写入不同格式的 Office 文件。下面是实现这一功能的整体流程。

读取 Excel 工作簿的流程

以下是实现流程的步骤:

步骤 描述
1 导入所需的 Apache POI 库
2 创建读取 Excel 文件的 Java 类
3 初始化工作簿对象
4 读取工作表内容
5 处理单元格数据
6 关闭工作簿

步骤详解

1. 导入所需的 Apache POI 库

首先,需要在项目中添加 Apache POI 的依赖。在 Maven 项目中,可以在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version> <!-- 请根据需要检查最新版本 -->
</dependency>

2. 创建读取 Excel 文件的 Java 类

创建一个新的 Java 类,比如 ExcelReader

public class ExcelReader {
    public static void main(String[] args) {
        // 在这里将调用读取 Excel 的方法
    }
}

3. 初始化工作簿对象

您需要在 main 方法中初始化工作簿对象。首先引入相关类:

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

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

然后在 main 方法中添加以下代码以读取 Excel 文件:

    public static void main(String[] args) {
        String excelFilePath = "文件路径.xlsx"; // 设置要读取的 Excel 文件路径
        Workbook workbook = null;

        try {
            // 创建文件输入流并读取工作簿
            FileInputStream fis = new FileInputStream(excelFilePath);
            workbook = new XSSFWorkbook(fis); // XSSFWorkbook 用于读取 .xlsx 格式文件
        } catch (IOException e) {
            e.printStackTrace(); // 打印异常信息
        }

4. 读取工作表内容

获取工作表对象并遍历行:

        //获取第一个工作表
        Sheet sheet = workbook.getSheetAt(0); // 获取工作簿的第一个工作表

        //遍历行
        for (Row row : sheet) {
            // 遍历单元格
            for (Cell cell : row) {
                // 读取单元格数据
                System.out.print(getCellValue(cell) + "\t");
            }
            System.out.println();
        }

5. 处理单元格数据

为了统一处理不同类型的单元格数据,可以创建一个方法 getCellValue

    private static String getCellValue(Cell cell) {
        String value = "";
        switch (cell.getCellType()) {
            case STRING:
                value = cell.getStringCellValue(); // 处理字符串
                break;
            case NUMERIC:
                value = String.valueOf(cell.getNumericCellValue()); // 处理数字
                break;
            case BOOLEAN:
                value = String.valueOf(cell.getBooleanCellValue()); // 处理布尔值
                break;
            default:
                break;
        }
        return value;
    }

6. 关闭工作簿

最后,确保在完成后关闭工作簿:

        // 关闭工作簿
        try {
            if (workbook != null) {
                workbook.close(); // 关闭工作簿以释放资源
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

小结

通过以上步骤,我们能够有效地使用 Java 读取 Excel 文件。完整的代码如下所示:

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

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

public class ExcelReader {
    public static void main(String[] args) {
        String excelFilePath = "文件路径.xlsx";
        Workbook workbook = null;

        try {
            FileInputStream fis = new FileInputStream(excelFilePath);
            workbook = new XSSFWorkbook(fis);

            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                for (Cell cell : row) {
                    System.out.print(getCellValue(cell) + "\t");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (workbook != null) {
                    workbook.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private static String getCellValue(Cell cell) {
        String value = "";
        switch (cell.getCellType()) {
            case STRING:
                value = cell.getStringCellValue();
                break;
            case NUMERIC:
                value = String.valueOf(cell.getNumericCellValue());
                break;
            case BOOLEAN:
                value = String.valueOf(cell.getBooleanCellValue());
                break;
            default:
                break;
        }
        return value;
    }
}

希望这篇文章能帮助您快速上手 Java 读取 Excel 文件的功能!如果您有任何疑问,请随时提问。