file-type

使用Apache POI读取Excel 03和07版本的实例教程

5星 · 超过95%的资源 | 下载需积分: 3 | 26.08MB | 更新于2025-06-09 | 147 浏览量 | 61 下载量 举报 2 收藏
download 立即下载
Apache POI是一个开源的Java库,用于处理Microsoft Office文档格式,它是由Apache软件基金会维护的。此库允许Java开发者读取和写入Microsoft Office文件,包括Excel文件。Excel文件有两种主要格式:较早的Excel 2003格式,文件扩展名为.xls,通常称为Excel 97-2003工作簿;以及较新的Excel 2007格式,文件扩展名为.xlsx,这是自Microsoft Office 2007起使用的Open XML格式。Apache POI提供了对这两种格式的支持。 在本小例子中,我们将关注如何使用Apache POI来读取Excel文件,重点是读取.xls和.xlsx这两种不同格式的文件。为了实现这一目标,我们需要依赖Apache POI提供的jar包。 Apache POI通过HSSF和XSSF两个组件分别处理.xls和.xlsx格式的Excel文档: 1. HSSF(Horrible Spreadsheet Format): 这个组件用于读写Excel 97-2003格式(.xls)。它提供了对Excel文件的低层和高层API的支持,允许开发者处理工作簿、工作表、单元格等元素。 2. XSSF(XML Spreadsheet Format): 这个组件用于读写Excel 2007及以上版本(.xlsx)。它与HSSF类似,也提供了丰富的API用于操作Excel文件,但它使用的是Open XML格式。 在使用Apache POI进行文件读取之前,我们首先需要添加依赖的jar包。对于Maven项目,可以在项目的pom.xml文件中添加以下依赖: ```xml <!-- Apache POI - Excel (.xls) --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>版本号</version> </dependency> <!-- Apache POI - Excel (.xlsx) --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>版本号</version> </dependency> ``` 在代码中读取Excel文件,我们通常遵循以下步骤: 1. 使用`FileInputStream`或`File`类来加载Excel文件。 2. 根据文件的扩展名创建对应的Workbook实例,对于.xls文件使用`HSSFWorkbook`,对于.xlsx文件使用`XSSFWorkbook`。 3. 通过Workbook实例获取`Sheet`对象,代表工作簿中的一个工作表。 4. 通过Sheet实例,我们可以遍历`Row`(行),然后遍历`Cell`(单元格),访问和操作单元格中的数据。 5. 最后,记得关闭文件流以及释放与之相关的资源。 下面是一个简单示例代码,展示如何使用Apache POI读取一个.xls文件: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class ExcelReader { public static void main(String[] args) throws IOException { FileInputStream fileInputStream = new FileInputStream(new File("path/to/your/excel.xls")); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fileInputStream); Sheet sheet = hssfWorkbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { // 根据单元格类型获取值 switch (cell.getCellType()) { case STRING: System.out.print(cell.getStringCellValue()); break; case NUMERIC: System.out.print(cell.getNumericCellValue()); break; case BOOLEAN: System.out.print(cell.getBooleanCellValue()); break; case FORMULA: System.out.print(cell.getCellFormula()); break; // 其他case... } } System.out.println(); } // 关闭文件输入流 fileInputStream.close(); // 还应关闭Workbook对象,释放资源 hssfWorkbook.close(); } } ``` 在实际的应用中,可能需要处理更复杂的单元格数据类型,如日期、公式、错误值等,以及进行错误处理和优化性能。此外,对于.xlsx文件的处理流程也类似,只是使用`XSSFWorkbook`替代`HSSFWorkbook`。 总之,Apache POI是一个功能强大的库,用于操作Excel文件,它提供了丰富的API来访问和处理Excel工作簿和工作表中的数据。无论是.xls格式还是.xlsx格式,Apache POI都能提供有效的解决方案,这对于Java开发者来说是非常有用的。使用Apache POI读取Excel文件时,我们能够轻松地实现数据的导入导出功能,满足日常办公自动化和数据处理的需求。

相关推荐