我正在做一个简单的任务:读取Excel文件并将其转换为对象。不过,我在读取Excel (.xls)时遇到了一个问题--我将从外部系统接收它(可能是他们自动生成的)。如果我打开它,只做一个简单的保存(不管有没有改变Excel文件中的任何内容),我的解析器逻辑就能正常工作。但是,如果我不编辑和保存该文件并试图按原样解析原始文件,则在加载.xls文件时在这一行得到一个异常:
HSSFWorkbook xlsWorkbook = new HSSFWorkbook(inputDocument);以下是例外情况:
java.lang.RuntimeException: Unexpected record type (org.apache.poi.hssf.record.HyperlinkRecord)
at org.apache.poi.hssf.record.aggregates.RowRecordsAggregate.<init>(RowRecordsAggregate.java:97)
at org.apache.poi.hssf.model.InternalSheet.<init>(InternalSheet.java:217)
at org.apache.poi.hssf.model.InternalSheet.createSheet(InternalSheet.java:156)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:337)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:289)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:224)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:382)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:364)我在谷歌上搜索过可能的解决方案,但从未找到任何解决方案!有人能帮我找到解决这个问题的方法吗?
PS:我甚至尝试用最新版本的POI (3.12)加载.xls,但没有成功!
谢谢
发布于 2015-12-03 13:02:54
bug.cgi?id=52447的讨论表明,这可能是由非标准的Excel文件造成的,Microsoft似乎处理得很好,但是Apache可能会窒息。你可以试着做以下的事情:
https://stackoverflow.com/questions/30785203
复制相似问题