使用 Java 处理 XLS 文件

在日常开发中,我们常常需要处理 XLS 格式的电子表格文件。Java 提供了许多库来简化这个过程,其中最流行的库之一是 Apache POI。本文将介绍如何使用 Apache POI 来读取和写入 XLS 文件,并提供一些示例代码,帮助你快速上手。

1. 环境准备

首先,你需要在项目中引入 Apache POI 的依赖。如果你使用 Maven 进行项目管理,可以在 pom.xml 文件中添加以下依赖:

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

2. 类图设计

为了更好地组织代码,我们可以设计一个类图,展示主要的类和它们之间的关系。下面是一个用 Mermaid 语法表示的类图:

classDiagram
    class ExcelHandler {
        +readExcel(filePath: String)
        +writeExcel(filePath: String, data: List<List<String>>)
    }

在这个类图中,ExcelHandler 类负责读取和写入 XLS 文件。

3. 代码示例

3.1 读取 XLS 文件

接下来,我们将实现一个方法来读取 XLS 文件。以下是 ExcelHandler 类的实现:

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

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

public class ExcelHandler {
    
    public void readExcel(String filePath) {
        try (FileInputStream fis = new FileInputStream(filePath);
             Workbook workbook = new XSSFWorkbook(fis)) {
             
            Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表
            for (Row row : sheet) {
                for (Cell cell : row) {
                    System.out.print(cell.toString() + "\t");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3.2 写入 XLS 文件

现在我们来实现一个方法,将数据写入一个新的 XLS 文件:

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

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

public class ExcelHandler {
    
    // 其他方法...

    public void writeExcel(String filePath, List<List<String>> data) {
        try (Workbook workbook = new XSSFWorkbook();
             FileOutputStream fos = new FileOutputStream(filePath)) {
             
            Sheet sheet = workbook.createSheet("Data");
            for (int i = 0; i < data.size(); i++) {
                Row row = sheet.createRow(i);
                List<String> rowData = data.get(i);
                for (int j = 0; j < rowData.size(); j++) {
                    Cell cell = row.createCell(j);
                    cell.setCellValue(rowData.get(j));
                }
            }
            workbook.write(fos);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4. 使用示例

最后,我们可以在主程序中使用 ExcelHandler 类来读取和写入 XLS 文件:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        ExcelHandler handler = new ExcelHandler();
        
        // 写入数据
        handler.writeExcel("example.xlsx", Arrays.asList(
            Arrays.asList("Name", "Age"),
            Arrays.asList("Alice", "30"),
            Arrays.asList("Bob", "25")
        ));

        // 读取数据
        handler.readExcel("example.xlsx");
    }
}

结尾

通过本文的介绍,你应该能够使用 Java 和 Apache POI 库来处理 XLS 文件。无论是读取数据还是写入数据,掌握了这些基本操作后,你可以更加灵活地处理电子表格中的信息。继续探索 Apache POI 库的更多功能,可以帮助你在实际项目中提高工作效率。希望这个小教程对你有所帮助!