Pregunta

He intentado usar JXL y Apache POI para cargar datos de un archivo de Excel, hasta ahora el mecanismo JXL ha funcionado bien. Incluso si incrusto una imagen en el archivo.

Recibí un archivo de una fuente que no analizará, obtengo la siguiente excepción 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)

Y con JXL obtengo un índice de límites

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)

El archivo se carga en Excel pero no en Open Office y lo único que puedo ver en los datos sin procesar es el objeto relacionado con Adobe XMP Core 4.1 ... que parece ser la causa del problema, si elimino la imagen, funciona bien ... Si pego otro JPG en su multa.

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

¿Hay alguna forma de ignorar esto? ¿Cómo haría para analizar este archivo?

Gracias.

¿Fue útil?

Solución

Una cosa para probar es usar una versión más nueva de Apache POI: los errores como este se solucionan con el tiempo.

Si la última versión de POI no ayuda (3.8 beta 2 a partir de la escritura), debe abrir un nuevo error en el POI Bugzilla y cargar el archivo de problemas. La excepción que está viendo es causada por POI que cree que debería haber una cierta cantidad de datos y encontrar más. Con el archivo, será posible identificar por qué hay esos datos allí y trabajar en su alrededor. (¡Es decir, suponiendo que ya no se ha solucionado!)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top