使用 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 数据处理需求。如果你有进一步的问题,欢迎随时提问!推动学习与分享,是我们共同进步的好方法。