生成 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