2009-09-21 1 views
5

JXLとApache POIを使用してExcelファイルからデータをロードしようとしましたが、今までJXLメカニズムがうまくいきました。ファイルに画像を埋め込んだとしても。添付画像オブジェクトでJXLとApache POI解析が威力を発揮

I習慣解析ソースからファイルを受信し、私は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) 

のうちのファイルのロードにインデックスを取得しますエクセルだけではなく、オープンなオフィスではありません。私が生データで見ることができる唯一のことは、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  "> 

これを無視する方法はありますか?このファイルを解析するにはどうしたらいいですか?

ありがとうございました。

答えて

2

試してみるべきことは、新しいバージョンのApache POIを使用することです。このようなバグは時間の経過とともに修正されます。

POIの最新バージョン(執筆時点で3.8ベータ2)が役に立たなかった場合は、POIバグの新しいバグを開いて問題のファイルをアップロードする必要があります。あなたが見ている例外は、特定の量のデータがあるはずであるとPOIが信じていることによります。このファイルを使用すると、そのデータがそこにある理由を特定し、そのデータを回避することができます。 (すなわち、まだ修正されていないと仮定して!)

関連する問題