JAVA POI 操作Excel:2003与2007版本读写实例

5星 · 超过95%的资源 需积分: 50 57 下载量 182 浏览量 更新于2024-09-16 收藏 17KB DOCX 举报
“JAVA用POI读取和创建2003和2007版本Excel完美示例” Apache POI 是一个开源库,它允许Java开发者处理Microsoft Office格式的文件,包括Excel。在这个示例中,我们将探讨如何使用POI库来读取和创建Excel 2003(HSSF)和2007(XSSF)版本的文件。 首先,要使用POI库,你需要在项目中添加对应的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <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> ``` 接下来,让我们详细了解一下如何读取和创建Excel文件: 1. 读取Excel文件: - 使用`FileInputStream`打开Excel文件。 - 根据文件版本(2003或2007),创建对应的Workbook对象,如`HSSFWorkbook`或`XSSFWorkbook`。 - 获取工作表(Sheet)通过调用`getSheetAt()`方法,传入工作表索引。 - 遍历行(Row)和单元格(Cell),使用`getRow()`和`getCell()`方法。 - 处理数据,例如,转换日期类型,格式化数字等。 2. 创建Excel文件: - 创建一个新的Workbook对象,同样根据目标版本选择`HSSFWorkbook`或`XSSFWorkbook`。 - 添加新的工作表(Sheet)通过调用`createSheet()`方法。 - 在工作表上创建行(Row)和单元格(Cell)。 - 设置单元格的数据类型,如字符串、数字、日期等,使用`setCellValue()`方法。 - 应用样式,如字体、颜色、对齐方式,创建`CellStyle`对象并设置给单元格。 - 保存文件到指定路径,使用`FileOutputStream`。 以下是创建Excel文件的一个简要示例: ```java // 创建一个新的Excel文件 Workbook workbook = new HSSFWorkbook(); // 对于2003版本 // Workbook workbook = new XSSFWorkbook(); // 对于2007版本 // 创建第一个工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建第一行 Row row = sheet.createRow(0); // 创建单元格并设置值 Cell cell = row.createCell(0); cell.setCellValue("Hello, POI!"); // 设置单元格样式 CellStyle style = workbook.createCellStyle(); style.setFillForegroundColor(HSSFColor.YELLOW.index); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); cell.setCellStyle(style); // 保存文件 FileOutputStream outputStream = new FileOutputStream("output.xls"); // 对于2003版本 // FileOutputStream outputStream = new FileOutputStream("output.xlsx"); // 对于2007版本 workbook.write(outputStream); outputStream.close(); ``` 这个示例展示了如何创建一个包含一个单元格的简单工作表,并设置了背景颜色。在实际应用中,你可能需要根据需求进行更复杂的操作,如合并单元格、设置边框、读取公式等。 请注意,处理日期时,POI提供了`HSSFDateUtil`类来帮助判断单元格是否包含日期值,并将其转换为Java的`Date`对象。对于数字,可以使用`DecimalFormat`进行格式化。 在读取文件时,如果单元格包含公式,POI会自动计算其值。此外,可以通过`CellType`枚举来检查单元格的数据类型。 Apache POI 提供了丰富的API,使得在Java中处理Excel文件变得非常方便。通过熟练掌握这些API,你可以实现各种复杂的Excel操作,满足各种业务需求。