如何将 XLS 文件转变成 Java 类

在实际开发中,我们经常需要将 Excel 文件(如 XLS 或 XLSX 格式)中的数据转化为 Java 对象,以便后续处理和分析。本文将介绍一种有效的方法,使用 Apache POI 库将 XLS 文件转变为 Java 类,并提供相应的示例。

1. 准备工作

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

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

2. 设计 Java 类

假设我们要处理的 Excel 文件包含员工信息,包括 ID姓名年龄 三列。我们可以创建一个简单的 Java 类来表示员工信息。

public class Employee {
    private int id;
    private String name;
    private int age;

    public Employee(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // Getters and Setters
}

类图展示

接下来,这里是 Employee 类的简单类图:

classDiagram
    class Employee {
        +int id
        +String name
        +int age
        +Employee(int id, String name, int age)
        +getId(): int
        +getName(): String
        +getAge(): int
    }

3. 读取 XLS 文件

下面的代码演示如何读取 XLS 文件并将其行数据转换为 Employee 对象列表。

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

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;

public class ExcelReader {
    public List<Employee> readEmployeesFromExcel(String filePath) {
        List<Employee> employees = new ArrayList<>();
        try (FileInputStream fis = new FileInputStream(new File(filePath));
             Workbook workbook = new XSSFWorkbook(fis)) {
            
            Sheet sheet = workbook.getSheetAt(0); // 读取第一个表
            for (Row row : sheet) {
                int id = (int) row.getCell(0).getNumericCellValue();
                String name = row.getCell(1).getStringCellValue();
                int age = (int) row.getCell(2).getNumericCellValue();
                employees.add(new Employee(id, name, age));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return employees;
    }
}

4. 实际应用示例

现在,我们来测试一下之前的 ExcelReader 类。例如,假设我们有一个 employees.xlsx 文件,里面有三名员工的信息。

public class Main {
    public static void main(String[] args) {
        ExcelReader excelReader = new ExcelReader();
        List<Employee> employees = excelReader.readEmployeesFromExcel("path/to/your/employees.xlsx");
        
        // 输出结果
        for (Employee employee : employees) {
            System.out.println("ID: " + employee.getId() + ", Name: " + employee.getName() + ", Age: " + employee.getAge());
        }
    }
}

5. 数据分析

可以通过对员工信息进行统计来进一步分析,比如年龄分布。此时我们可以生成饼状图来展示不同年龄段员工的比例。

pie
    title 年龄分布
    "18-25": 30
    "26-35": 40
    "36-45": 20
    "46+": 10

结论

通过上述方法,我们成功地将一个 XLS 文件中的员工信息转换为了 Java 对象,从而可以更方便地进行操作和分析。利用 Apache POI 库可以轻松地读取各种 Excel 文件,这为我们处理数据提供了很大的便利。希望本文能为你在开发中处理 Excel 数据提供一些启示和帮助。