Я пытаюсь прочитать файл 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)
Чего мне не хватает?