Pergunta

Eu tentei usar o JXL e o Apache POI para carregar dados de um arquivo do Excel, até agora o mecanismo JXL funcionou bem. Mesmo se eu incorporar uma imagens no arquivo.

Recebi um arquivo de uma fonte que não analisa, recebo a seguinte exceção com 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 com JXL eu recebo um índice dos limites

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)

O arquivo carrega no Excel, mas não no escritório aberto e a única coisa que posso ver nos dados brutos é o objeto relacionado ao Adobe XMP Core 4.1 ... que parece ser a causa do problema, se eu remover a imagem, ele funcionar bem ... se eu colocar outro jpg em sua boa.

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

Existe alguma maneira de ignorar isso? Como eu iria analisar esse arquivo.

Obrigado.

Foi útil?

Solução

Uma coisa a tentar é usar uma versão mais recente do apache poi - bugs como esse são corrigidos ao longo do tempo.

Se a versão mais recente do POI não ajudar (3.8 beta 2 até a redação), você deverá abrir um novo bug no POI Bugzilla e fazer o upload do arquivo de problemas. A exceção que você está vendo é causada por POI acreditar que deve haver uma certa quantidade de dados e encontrar mais. Com o arquivo, será possível identificar por que esses dados estão lá e contorná -lo. (Isto é, assumindo que ainda não foi consertado!)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top