создание экземпляра класса XSSFWorkbook - PullRequest
0 голосов
/ 12 июня 2019

Мне нужно прочитать две конкретные ячейки в 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

...