Java使用POI读取Excel教程

4星 · 超过85%的资源 需积分: 9 13 下载量 146 浏览量 更新于2024-09-13 收藏 2KB TXT 举报
"Java 解析Excel相关技术及代码示例" 在Java开发中,处理Excel文件是一项常见的任务,主要用于数据导入导出。本资源主要关注使用Apache POI库来解析和操作Excel文件。Apache POI是一个流行的开源项目,它允许Java开发者读取、写入以及修改Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。 Apache POI提供了两种主要的API用于处理Excel:HSSF(Horrible Spreadsheet Format)用于处理老版本的BIFF8格式(.xls),而XSSF则用于处理OOXML格式(.xlsx)。在给定的描述中,提到了 poi-3.7-20101029 版本,这表明我们将使用XSSF来处理.xlsx文件,因为这个版本支持OOXML标准。 要使用Apache POI,首先需要在项目中引入以下依赖库: 1. poi-3.7-20101029.jar 2. poi-examples-3.7-20101029.jar 3. poi-ooxml-3.7-20101029.jar 4. poi-ooxml-schemas-3.7-20101029.jar 5. poi-scratchpad-3.7-20101029.jar 6. xmlbeans-2.3.0.jar 7. jsr173_1.0_api.jar 8. dom4j-1.6.1.jar 9. geronimo-stax-api_1.0_spec-1.0.jar 以下是一个简单的Java代码示例,展示了如何使用POI读取.xlsx文件: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class AllCityExcel { private static final Logger logger = Logger.getLogger(AllCityExcel.class); private static final DbAllCityImpl dbAllCity = new DbAllCity(); public List<List<String>> readExcel(String fileName, String path) { List<List<String>> rows = new ArrayList<>(); try { FileInputStream fis = new FileInputStream(new File(path + "/" + fileName)); XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fis); for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) { XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet); if (xssfSheet == null) { continue; } // 遍历行 for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) { XSSFRow xssfRow = xssfSheet.getRow(rowNum); if (xssfRow == null) { continue; } // 遍历单元格 List<String> cells = new ArrayList<>(); for (int cellNum = 0; cellNum < xssfRow.getLastCellNum(); cellNum++) { XSSFCell xssfCell = xssfRow.getCell(cellNum); if (xssfCell != null) { cells.add(xssfCell.getStringCellValue()); } else { cells.add(null); } } rows.add(cells); } } xssfWorkbook.close(); fis.close(); } catch (IOException e) { logger.error("读取Excel文件出错", e); } return rows; } } ``` 在这个示例中,`readExcel`方法接收文件名和路径作为参数,然后创建一个`FileInputStream`来打开Excel文件。接着,通过`XSSFWorkbook`实例化来读取工作簿,并遍历每个工作表(sheet)。对于每个非空的工作表,我们逐行遍历并获取单元格的值,将值存储到一个`List<String>`对象中,最后将所有行数据添加到`rows`列表返回。 这个例子中的`DbAllCityImpl`类可能是一个数据库操作的实现,表示读取到的数据可能会被进一步处理并存储到数据库中。然而,这部分的具体实现并没有给出。 Apache POI提供了一套强大的工具,使得Java开发者能够方便地处理Excel文件。在实际项目中,可以扩展这些基础示例来实现更复杂的逻辑,如数据验证、格式转换、公式计算等。