2009-09-21 42 views
5

我已经尝试使用JXL和Apache POI从Excel文件加载数据,直到现在JXL机制工作正常。即使我在文件中嵌入图像。JXL和Apache POI解析优秀与附加的图像对象

我接到一个源文件,它不会分析,我得到下面的异常与POI

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相关的对象......这似乎是问题的原因,如果我删除它的工作正常的图像... if我坚持另一个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  "> 

有什么办法可以忽略它吗?我将如何去解析这个文件。

谢谢。

回答

2

有一点需要尝试的是使用更新版本的Apache POI--这样的错误随着时间的推移会得到修复。

如果最新版本的POI没有帮助(截止撰写时为3.8 beta 2),您应该在POI bugzilla中打开一个新的错误并上传问题文件。您看到的例外情况是由于POI认为应该存在一定数量的数据并找到更多数据。通过该文件,可以确定数据在那里的原因并解决它。 (也就是说,假设它还没有被修复!)