ClassCastException при чтении файла Excel с Apache POI - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь прочитать файл Excel (.xlsx), используя POI, но по какой-то странной причине он продолжает выдавать следующее исключение:

java.lang.ClassCastException: org.openxmlformats.schemas.drawingml.x2006.main. impl.ThemeDocumentImpl нельзя преобразовать в org.openxmlformats.schemas.drawingml.x2006.main. ThemeDocument

Я использую следующие библиотеки POI 3.7 (система не позволяет нам обновляться)

  • poi-3.7-20101029.jar
  • пои-OOXML-3.7-20101029.jar
  • пои-OOXML-схемы-3.7-20101029.jar

Код выглядит следующим образом.

/**
 * @param fileName
 * @param outputName
 */
override function parseAndConverToCSVFile(fileName : String, outputName : String) {
  var lineCount = 0
  var file = new FileInputStream(new File(fileName))
  var wb = new XSSFWorkbook(file)
  var sheet = wb.getSheetAt(0)
  var row : XSSFRow

  ...
}

Исключение выдается при создании новой книги со следующим сообщением.

java.lang.ClassCastException: org.openxmlformats.schemas.drawingml.x2006.main.impl.ThemeDocumentImpl cannot be cast to org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument at org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory.parse(Unknown Source) at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:39) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:59) at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:277) at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:186) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:189) at full.path.package.name.CappingDataImportUtility.parseAndConverToCSVFile(CappingDataImportUtility.gs:57)

Чего мне не хватает?

...