数据驱动测试:Selenium Java无法读取Excel值的问题
Eclipse普通Java项目(无pom.xml)读取Excel的解决方案
确保Apache POI依赖包完整
读取xlsx格式Excel需要POI的多个关联Jar,仅导入单个核心包会导致报错。你必须导入以下所有Jar包:
- poi-[版本号].jar(POI核心功能包)
- poi-ooxml-[版本号].jar(处理OOXML格式文件)
- poi-ooxml-schemas-[版本号].jar(OOXML schema支持)
- commons-codec-[版本号].jar
- commons-collections4-[版本号].jar
- commons-compress-[版本号].jar
- curvesapi-[版本号].jar
- xmlbeans-[版本号].jar
Eclipse普通项目导入Jar包步骤
- 右键你的项目 → 选择
Build Path→Add External Archives... - 选中上述所有下载好的Jar文件,点击确认完成导入
- 检查项目的
Referenced Libraries,确认所有Jar都已正确添加
代码完善(避免空指针和类型错误)
你的现有代码未处理行/单元格为空或类型不匹配的情况,容易抛出异常,建议调整为:
public class DDT { public static void main(String[] args) throws EncryptedDocumentException, IOException { FileInputStream fis = new FileInputStream("E:\\DDT\\DDT.xlsx"); Workbook wb = WorkbookFactory.create(fis); Sheet sheet = wb.getSheet("Sheet1"); if (sheet != null) { Row row = sheet.getRow(1); if (row != null) { Cell cell = row.getCell(1); if (cell != null) { String cellValue; // 根据单元格类型适配取值逻辑 switch (cell.getCellType()) { case STRING: cellValue = cell.getStringCellValue(); break; case NUMERIC: cellValue = String.valueOf(cell.getNumericCellValue()); break; case BOOLEAN: cellValue = String.valueOf(cell.getBooleanCellValue()); break; default: cellValue = ""; } System.out.println(cellValue); } } } // 关闭资源避免内存泄漏 wb.close(); fis.close(); } }
常见问题排查
- NoClassDefFoundError:直接对应缺失依赖Jar,对照前面的列表检查是否有遗漏
- NullPointerException:指定的行/单元格不存在,添加空值判断即可解决
- FileNotFoundException:确认Excel文件路径是否正确,可尝试用正斜杠
/替代反斜杠\\(如E:/DDT/DDT.xlsx)
内容的提问来源于stack exchange,提问作者Prakash Mohanraj
相关产品推荐
相关产品推荐

