poi-读取Excel表格内容
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,尤其是Excel(.xls和.xlsx)文件。在本文中,我们将深入探讨如何使用Apache POI读取Excel表格内容。 我们需要理解Apache POI的基本架构。POI分为两个主要部分:HSSF(Horizontally-Scalable Storage Format)用于处理旧版的BIFF格式Excel文件(.xls),而XSSF(XML Spreadsheet Storage Format)则是用于处理基于XML的新版Excel文件(.xlsx)。对于读取工作,这两个API非常相似,只是处理的数据结构有所不同。 要开始使用Apache 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. **打开工作簿**:使用`POIFSFileSystem`或`OPCPackage`来打开.xls或.xlsx文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_your_file.xls"); HSSFWorkbook workbook = new HSSFWorkbook(fis); // 或者对于.xlsx文件 OPCPackage opcPackage = OPCPackage.open("path_to_your_file.xlsx"); XSSFWorkbook xworkbook = new XSSFWorkbook(opcPackage); ``` 2. **获取工作表**:工作簿中包含了一个或多个工作表,你可以通过索引来访问它们: ```java Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表 ``` 3. **遍历行和单元格**:使用迭代器或索引遍历工作表中的每一行和每个单元格: ```java for (Row row : sheet) { for (Cell cell : row) { switch (cell.getCellType()) { case STRING: System.out.print(cell.getStringCellValue() + "\t"); break; case NUMERIC: System.out.print(cell.getNumericCellValue() + "\t"); break; // 其他类型如 BOOLEAN, DATE, FORMULA 等 default: System.out.print("\t"); break; } } System.out.println(); } ``` 4. **处理日期和公式**:对于日期单元格,你需要将其转换为日期对象;对于公式单元格,你需要计算其值: ```java if (cell.getCellType() == CellType.NUMERIC && DateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); System.out.print(date.toString() + "\t"); } else if (cell.getCellType() == CellType.FORMULA) { double formulaResult = cell.getCachedFormulaResultValue().getNumberValue(); System.out.print(formulaResult + "\t"); } ``` 5. **关闭资源**:在完成读取后,记得关闭所有打开的流: ```java workbook.close(); fis.close(); // 或 opcPackage.close(); ``` 此外,Apache POI还提供了其他高级功能,如样式和格式处理、图表读取、合并单元格等。通过这些功能,你可以创建复杂的Excel处理程序,满足各种业务需求。 Apache POI是Java开发者处理Excel文件的强大工具,它提供了一套全面的API来读取、写入和修改Excel文件。无论你是进行数据导入、报表生成还是自动化测试,Apache POI都能提供所需的灵活性和性能。通过熟练掌握Apache POI,你可以更高效地处理Excel数据,提高工作效率。