Java利用Apache POI创建Excel示例与依赖管理

0 下载量 193 浏览量 更新于2024-08-03 收藏 3KB MD 举报
在Java中生成Excel文件是一项常见的任务,特别是在数据处理和报告生成中。本文将详细介绍如何利用Apache POI库来实现这一功能。Apache POI是Apache软件基金会开发的一款强大的API,用于操作Microsoft Office格式的文件,包括Excel、Word和PowerPoint。在本篇教程中,我们将主要关注Excel文件的生成。 首先,确保在项目中正确集成Apache POI库。在Maven项目中,你需要在pom.xml文件的<dependencies>部分添加相应的依赖: ```xml <dependencies> <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> </dependencies> ``` 这里的`poi`包提供基本的Excel操作,而`poi-ooxml`则允许我们创建和读取XML格式的Excel文件(如.xlsx),这对于现代版本的Excel支持更好。 接下来,编写一个Java方法`createExcel`,用于实际生成Excel文件: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io.IOException; public class ExcelGenerator { public static void main(String[] args) { createExcel("example.xlsx"); } public static void createExcel(String fileName) { Workbook workbook = new XSSFWorkbook(); // 创建一个新的Excel工作簿 Sheet sheet = workbook.createSheet("Sheet1"); // 在工作簿中创建一个名为"Sheet1"的工作表 // 创建表头行 Row headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("姓名"); // 填写列标题 headerRow.createCell(1).setCellValue("年龄"); headerRow.createCell(2).setCellValue("邮箱"); // 示例数据行 int rowNum = 1; for (String name : names) { // 假设names是一个包含姓名的列表 Row dataRow = sheet.createRow(rowNum++); dataRow.createCell(0).setCellValue(name); dataRow.createCell(1).setCellValue(randomAge()); // 生成随机年龄 dataRow.createCell(2).setCellValue(emailGenerator(name)); // 生成随机电子邮件地址 } try (FileOutputStream outputStream = new FileOutputStream(fileName)) { workbook.write(outputStream); // 将工作簿写入文件 System.out.println("Excel file created successfully: " + fileName); } catch (IOException e) { System.err.println("Error creating Excel file: " + e.getMessage()); } } } ``` 在这个示例中,我们首先创建一个`XSSFWorkbook`对象,这是XLSX文件的工作簿类型。然后,我们创建一个名为"Sheet1"的工作表,并定义表头。接着,我们可以根据需要添加数据行,这里假设`names`是一个包含员工姓名的列表,`randomAge()`和`emailGenerator(name)`是辅助方法,用于生成随机年龄和电子邮件地址。 最后,通过`FileOutputStream`将工作簿写入指定的文件名,并捕获可能的`IOException`。这展示了基础的Excel文件生成过程,你可以根据实际需求扩展这个示例,比如处理更复杂的表结构,使用样式和公式等。 使用Apache POI库在Java中生成Excel文件既实用又灵活,掌握这一技能有助于在日常开发中处理大量数据的存储和展示。