我已经尝试使用JXL和Apache POI从Excel文件加载数据,直到现在为止,JXL机制运行良好。即使我在文件中嵌入图像。

我收到了一个无法解析的来源的文件,我得到了以下例外情况

Exception in thread "main" org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException: Initialisation of record 0xE2 left 2 bytes remaining still to be read.
     at org.apache.poi.hssf.record.RecordInputStream.hasNextRecord(RecordInputStream.java:124)
     at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:402)
     at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:277)
     at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:202)
     at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:184)
     at testXlsParsers.main(TestXlsParsers.java:19)

有了JXL,我从范围中获得了索引

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
     at java.util.ArrayList.RangeCheck(ArrayList.java:546)
     at java.util.ArrayList.get(ArrayList.java:321)
     at jxl.read.biff.WorkbookParser.getSheet(WorkbookParser.java:247)
     at ParserXLS.parse(ParserXLS.java:27)
     at ParserXLS.main(ParserXLS.java:46)

该文件加载到Excel中,但不加入开放式办公室,在原始数据中我唯一可以看到的是Adobe XMP Core 4.1相关对象...这似乎是问题的原因,如果我删除图像,则可以正常工作。 ...如果我牢记另一个JPG。

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c036 46.277092, Fri Feb 23 2007 14:16:18        ">

有什么方法可以忽略这一点吗?我将如何解析此文件。

谢谢。

有帮助吗?

解决方案

要尝试的一件事是使用较新版本的Apache POI-这样的错误随着时间的流逝而被修复。

如果最新版本的POI无济于事(截至写作时3.8 Beta 2),则应在POI Bugzilla中打开一个新错误,并上传问题文件。您看到的例外是POI认为应该有一定数量的数据并找到更多数据。使用该文件,可以确定该数据为何存在,并围绕它工作。 (也就是说,假设尚未修复!)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top