生成 Excel 文件的 Java 程序

概述

在 Java 中,我们可以使用 Apache POI 库来生成 Excel 文件。Apache POI 是一个开源的 Java 库,用于读写 Microsoft Office 格式的文件,包括 Excel、Word 和 PowerPoint。通过使用 Apache POI,我们可以轻松地在 Java 程序中生成和操作 Excel 文件。

本文将介绍如何使用 Apache POI 来生成一个简单的 Excel 文件,并提供相应的代码示例。

环境准备

在开始之前,我们需要确保已经安装了 Java 开发环境和 Maven 构建工具。在 Maven 的 pom.xml 文件中,添加以下依赖项以引入 Apache POI:

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

生成 Excel 文件

下面的代码示例展示了如何使用 Apache POI 来生成一个简单的 Excel 文件。我们将创建一个 ExcelGenerator 类,其中包含一个 generateExcel 方法,该方法将生成一个包含学生信息的 Excel 文件。

类图

classDiagram
    class ExcelGenerator {
        -Workbook workbook
        +generateExcel(List<Student> students)
        -createHeaderRow(Sheet sheet)
        -createDataRow(Sheet sheet, Student student)
    }
    class Student {
        -String name
        -int age
        +getName()
        +getAge()
    }

流程图

flowchart TD
    A[开始] --> B[创建 Excel 文件]
    B --> C[写入表头]
    C --> D[写入数据]
    D --> E[保存 Excel 文件]
    E --> F[结束]

代码示例

首先,在 ExcelGenerator 类中创建一个 Workbook 对象,用于表示 Excel 文件:

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

public class ExcelGenerator {
    private Workbook workbook;

    public void generateExcel(List<Student> students) {
        workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Student Info");
        
        createHeaderRow(sheet);
        createDataRow(sheet, students);
        
        saveExcelFile();
    }
    
    private void createHeaderRow(Sheet sheet) {
        Row headerRow = sheet.createRow(0);
        Cell cell1 = headerRow.createCell(0);
        cell1.setCellValue("Name");
        Cell cell2 = headerRow.createCell(1);
        cell2.setCellValue("Age");
    }
    
    private void createDataRow(Sheet sheet, List<Student> students) {
        int rowNum = 1;
        for (Student student : students) {
            Row row = sheet.createRow(rowNum++);
            Cell cell1 = row.createCell(0);
            cell1.setCellValue(student.getName());
            Cell cell2 = row.createCell(1);
            cell2.setCellValue(student.getAge());
        }
    }
    
    private void saveExcelFile() {
        try {
            FileOutputStream outputStream = new FileOutputStream("student_info.xlsx");
            workbook.write(outputStream);
            workbook.close();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

然后,我们创建一个 Student 类来表示学生对象。该类包含姓名和年龄两个属性,并提供相应的 getter 方法:

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

最后,在主程序中调用 ExcelGenerator 类的 generateExcel 方法来生成 Excel 文件:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();

        Student student1 = new Student();
        student1.setName("John Doe");
        student1.setAge(20);
        students.add(student1);

        Student student2 = new Student();
        student2.setName("Jane Smith");
        student2.setAge(22);
        students.add(student2);

        ExcelGenerator excelGenerator = new ExcelGenerator();
        excelGenerator.generateExcel(students);
    }
}

总结

通过使用 Apache POI 库,我们可以在 Java 程序中生成 Excel 文件。本文介绍了如何使用 Apache POI 来生成一个包含学生信息的简单 Excel 文件,并提供了相应的代码示例。我们创建了一个 ExcelGenerator 类,其中包含一个 `generate