Мне нужно прочитать две конкретные ячейки в MS Excel и может быть в старом формате (xls) или в новом формате (xlsx). Я прочитал старый формат со следующим кодом:
public static String getCellValuePlanOldFormat(String file, String sheetName, String columnCell, String rowCell) throws FileNotFoundException, IOException {
String returnValue = "";
InputStream stream = new FileInputStream(file);
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(stream);
Sheet sheet = hssfWorkbook.getSheet(sheetName);
CellReference cellReference = new CellReference(columnCell + rowCell);
Row row = sheet.getRow(cellReference.getRow());
Cell cell = row.getCell(cellReference.getCol());
returnValue = cell.getStringCellValue();
hssfWorkbook.close();
stream.close();
return returnValue;
}
Но я попытался прочитать XLSX, и я поймал две ошибки и произошел, когда я создал экземпляр класса:
public static String getCellValuePlanNewFormat(String file, String sheetName, String columnCell, String rowCell) throws FileNotFoundException, IOException, InvalidFormatException {
String returnValue = "teste";
File fileIO = new File(file);//i tried with inputStream too
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fileIO);
return returnValue;
}
И ошибки:
Could not initialize class org.apache.poi.ooxml.POIXMLTypeLoader
и
org.apache.poi.ooxml.POIXMLException: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
Я не знаю, где я иду не так.
Я использую следующие библиотеки:
Обще-collections4-4.3.jar
Обще-компресс-1.18.jar
пои-4.1.0.jar
пои-OOXML-4.1.0.jar
пои-OOXML-схемы-4.1.0.jar
XMLBeans-3.1.0.jar