Domanda

Ho provato con JXL e Apache POI di caricare i dati da un file Excel, fino ad oggi il meccanismo di JXL ha funzionato benissimo. Anche se incorporare un immagini nel file.

Ho ricevuto un file da una fonte che wont parse, ottengo la seguente eccezione con 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)

e con jxl ottengo un indice fuori limite

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)

I carichi di file in Excel, ma non in open office e l'unica cosa che posso vedere nei dati grezzi è l'oggetto di Adobe XMP Nucleo 4.1 connessi ... che sembra essere la causa del problema, se rimuovere l'immagine funziona bene ... se mi attengo un'altra jpg nella sua fine.

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

C'è qualche modo per ignorare questo? Come potrei fare per l'analisi di questo file.

Grazie.

È stato utile?

Soluzione

Una cosa da provare è utilizzare una nuova versione di Apache POI -. Bug come questo si fissa nel tempo

Se l'ultima versione di POI non aiuta (3.8 beta 2 al momento di scrivere), si dovrebbe aprire un nuovo bug in bugzilla POI, e caricare il file problema. L'eccezione che stai vedendo è causato da POI credere che ci dovrebbe essere una certa quantità di dati, e di trovare di più. Con il file sarà possibile identificare il motivo per cui i dati di lì, e lavorare intorno ad esso. (Cioè, ammesso che non sia già stato risolto!)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top