尝试读取Excel文件时出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook
at
Caused by: java.lang.ClassNotFoundException: org.apache.poi.hssf.usermodel.HSSFWorkbook
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
我已使用以下代码读取扩展名为.xls的Excel文件。我曾尝试通过导入其他poi jar来搜索答案,但没有帮助,我检查了搜索网络,但再次没有帮助。
public Object[][] getExcelData(String excelLocation, String sheetName) {
try {
Object dataSets[][] = null;
FileInputStream file = new FileInputStream(new File(excelLocation));
HSSFWorkbook workbook = new HSSFWorkbook(excelLocation);
HSSFSheet sheet = workbook.getSheet(sheetName);
int totalRowNum = sheet.getLastRowNum();
int totalColumnNum = sheet.getRow(0).getLastCellNum();
dataSets = new Object[totalRowNum][totalColumnNum];
Iterator<Row> rowIterator = sheet.iterator();
int i = 0;
while (rowIterator.hasNext()) {
i++;
HSSFRow row = (HSSFRow) rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
int j = 0;
while (cellIterator.hasNext()) {
j++;
HSSFCell cell = (HSSFCell) cellIterator.next();
switch (cell.getCellTypeEnum()) {
case STRING:
dataSets[i][j] = cell.getStringCellValue();
break;
case NUMERIC:
dataSets[i][j] = cell.getNumericCellValue();
break;
case BOOLEAN:
dataSets[i][j] = cell.getBooleanCellValue();
break;
case FORMULA:
dataSets[i][j] = cell.getCellFormula();
break;
default:
log.info("No matching ENUM Type Found");
break;
}
}
}
return dataSets;
} catch (Exception e) {
log.info(e.getCause());
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
ExcelHelper excel = new ExcelHelper();
String excelLocation = ResourceHelper.getResourcePath("\\src\\main\\resources\\testData\\testData.xls");
Object[][] data = excel.getExcelData(excelLocation, "Login");
}
}
答案 0 :(得分:1)
从您的用户位置删除.m2->执行Maven强制更新->运行