使用Apache POI实现Excel导出

5星 · 超过95%的资源 需积分: 10 23 下载量 110 浏览量 更新于2024-07-31 收藏 125KB DOC 举报
"POI导出EXCEL经典实现" 在Java Web开发中,数据的导入导出功能是非常常见的,尤其在生产管理和财务系统中,数据导出通常用于生成报表。其中,Excel格式是导出的首选格式,因为它易于阅读且兼容性好。Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和读取Microsoft Office格式的文件,包括Excel。本文主要讲解如何使用Apache POI实现Excel文件的导出。 首先,你需要从Apache POI的官方网站(http://poi.apache.org/)下载对应的JAR包。在例子中,作者使用的是3.0.2版本,你需要确保将这些依赖添加到你的项目类路径(classpath)中。通常,这可以通过IDE的“添加外部JAR”功能完成。 接下来,为了实现Excel导出,我们需要编写一个实用类。这个类应具备通用性和灵活性,以便在不同的项目中直接使用或稍作修改即可适应需求。以下是一个简单的`Student`类示例,它包含了导出所需的基本属性: ```java package org.leno.export.util; import java.util.Date; public class Student { private long id; private String name; private int age; private boolean sex; private Date birthday; public Student() { super(); } public Student(long id, String name, int age, boolean sex, Date birthday) { this.id = id; this.name = name; this.age = age; this.sex = sex; this.birthday = birthday; } // getters and setters for the properties } ``` 有了数据模型,我们可以创建一个专门处理Excel导出的工具类。此类会包含一个方法,接收数据集合(例如`List<Student>`),并利用Apache POI创建并写入Excel工作簿。下面是一个简化的示例,展示了如何使用POI创建一个新的Excel工作簿,并向其中添加工作表和数据: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; public class ExcelExportUtil { public static void exportExcel(List<Student> students, String fileName) throws IOException { Workbook workbook = new HSSFWorkbook(); // 创建工作簿 Sheet sheet = workbook.createSheet("学生信息"); // 创建工作表 Row headerRow = sheet.createRow(0); // 创建表头 headerRow.createCell(0).setCellValue("ID"); headerRow.createCell(1).setCellValue("姓名"); headerRow.createCell(2).setCellValue("年龄"); headerRow.createCell(3).setCellValue("性别"); headerRow.createCell(4).setCellValue("生日"); int rowNum = 1; for (Student student : students) { Row dataRow = sheet.createRow(rowNum++); dataRow.createCell(0).setCellValue(student.getId()); dataRow.createCell(1).setCellValue(student.getName()); dataRow.createCell(2).setCellValue(student.getAge()); dataRow.createCell(3).setCellValue(student.isSex() ? "男" : "女"); dataRow.createCell(4).setCellValue(student.getBirthday()); } try (FileOutputStream outputStream = new FileOutputStream(fileName)) { workbook.write(outputStream); } } } ``` 上述代码中,`exportExcel`方法接收学生列表和文件名作为参数,创建工作簿,定义表头,然后遍历每个学生对象,将其数据写入新的行。最后,将整个工作簿写入指定的文件。 通过这样的实现,你可以根据实际业务需求调整`ExcelExportUtil`类,比如增加样式设置、数据格式化、错误处理等,以满足更复杂的需求。Apache POI提供了丰富的API来处理Excel文件,使得在Java中导出Excel变得相对简单。