JXL和Apache POI与附件的图像对象进行excel
-
12-09-2019 - |
题
我已经尝试使用JXL和Apache POI从Excel文件加载数据,直到现在为止,JXL机制运行良好。即使我在文件中嵌入图像。
我收到了一个无法解析的来源的文件,我得到了以下例外情况
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相关对象...这似乎是问题的原因,如果我删除图像,则可以正常工作。 ...如果我牢记另一个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 ">
有什么方法可以忽略这一点吗?我将如何解析此文件。
谢谢。
解决方案
要尝试的一件事是使用较新版本的Apache POI-这样的错误随着时间的流逝而被修复。
如果最新版本的POI无济于事(截至写作时3.8 Beta 2),则应在POI Bugzilla中打开一个新错误,并上传问题文件。您看到的例外是POI认为应该有一定数量的数据并找到更多数据。使用该文件,可以确定该数据为何存在,并围绕它工作。 (也就是说,假设尚未修复!)
不隶属于 StackOverflow