使用 Java POI 实现 Excel 处理工具类的步骤

在进行 Excel 数据处理时,Apache POI 是一个非常强大的 Java 库。下面我们将介绍如何创建一个基本的 Java POI 工具类,帮助你读写 Excel 文件。我们将分步骤进行说明,并提供相关代码示例。

整体流程

首先,我们需要明确整个实现流程。以下是使用表格展示的步骤:

步骤编号 步骤描述
1 添加 Apache POI 依赖
2 创建工具类
3 实现读取 Excel 文件的方法
4 实现写入 Excel 文件的方法
5 测试工具类

详细步骤

1. 添加 Apache POI 依赖

在你的项目中引入 Apache POI 依赖。如果你使用 Maven,可以在 pom.xml 文件中添加以下内容:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version> <!-- 请根据需要修改 POI 版本 -->
</dependency>
2. 创建工具类

接下来,我们要创建一个名为 ExcelUtil 的工具类。这个类将包含读写 Excel 的方法。

package com.example.util;

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

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

这段代码导入了需要使用的包,包括 Apache POI 和输入输出流。

3. 实现读取 Excel 文件的方法

我们将实现一个读取 Excel 文件的方法,返回一个二维数组,表示 Excel 表格的内容。

public List<List<String>> readExcel(String filePath) throws IOException {
    List<List<String>> data = new ArrayList<>();
    
    try (FileInputStream fis = new FileInputStream(filePath);
         Workbook workbook = new XSSFWorkbook(fis)) {
        Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表
        for (Row row : sheet) {
            List<String> rowData = new ArrayList<>();
            for (Cell cell : row) {
                rowData.add(cell.toString()); // 将每个单元格的内容添加到行数据
            }
            data.add(rowData); // 将行数据添加到列表
        }
    }
    return data; // 返回数据
}

这里我们利用了 try-with-resources 语句自动关闭资源,确保文件输入流和工作簿都被正确关闭。

4. 实现写入 Excel 文件的方法

下面我们将实现一个写入 Excel 文件的方法:

public void writeExcel(String filePath, List<List<String>> data) throws IOException {
    try (Workbook workbook = new XSSFWorkbook(); 
         FileOutputStream fos = new FileOutputStream(filePath)) {
        Sheet sheet = workbook.createSheet("Sheet1"); // 创建工作表
        for (int i = 0; i < data.size(); i++) {
            Row row = sheet.createRow(i); // 创建行
            for (int j = 0; j < data.get(i).size(); j++) {
                Cell cell = row.createCell(j); // 创建单元格
                cell.setCellValue(data.get(i).get(j)); // 设置单元格值
            }
        }
        workbook.write(fos); // 将数据写入文件
    }
}
5. 测试工具类

完成类的实现之后,我们可以创建一个简单的主方法来测试这些功能:

public static void main(String[] args) {
    ExcelUtil excelUtil = new ExcelUtil();
    try {
        List<List<String>> data = excelUtil.readExcel("input.xlsx"); // 读取数据
        excelUtil.writeExcel("output.xlsx", data); // 写入数据
    } catch (IOException e) {
        e.printStackTrace();
    }
}

状态图和序列图

接下来,我们可以用状态图和序列图来可视化这个过程。

状态图
stateDiagram
    [*] --> ExcelUtil
    ExcelUtil --> readExcel
    readExcel --> data
    ExcelUtil --> writeExcel
    writeExcel --> success
    success --> [*]
序列图
sequenceDiagram
    participant User
    participant ExcelUtil
    User->>ExcelUtil: readExcel("input.xlsx")
    ExcelUtil->>FileInputStream: open file
    ExcelUtil->>Workbook: read data
    ExcelUtil->>User: return data
    User->>ExcelUtil: writeExcel("output.xlsx", data)
    ExcelUtil->>FileOutputStream: write data
    ExcelUtil->>User: confirm success

结尾

通过以上步骤,你已经掌握了如何使用 Apache POI 工具类来读取和写入 Excel 文件。希望这能帮到你在 Java 开发中的 Excel 数据处理需求。如果你有进一步的问题,欢迎随时提问!推动学习与分享,是我们共同进步的好方法。