首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >POI:意外记录类型org.apache.poi.hssf.record.HyperlinkRecord

POI:意外记录类型org.apache.poi.hssf.record.HyperlinkRecord
EN

Stack Overflow用户
提问于 2015-06-11 15:33:00
回答 1查看 2K关注 0票数 3

我正在做一个简单的任务:读取Excel文件并将其转换为对象。不过,我在读取Excel (.xls)时遇到了一个问题--我将从外部系统接收它(可能是他们自动生成的)。如果我打开它,只做一个简单的保存(不管有没有改变Excel文件中的任何内容),我的解析器逻辑就能正常工作。但是,如果我不编辑和保存该文件并试图按原样解析原始文件,则在加载.xls文件时在这一行得到一个异常:

代码语言:javascript
复制
HSSFWorkbook xlsWorkbook = new HSSFWorkbook(inputDocument);

以下是例外情况:

代码语言:javascript
复制
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,但没有成功!

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-12-03 13:02:54

bug.cgi?id=52447的讨论表明,这可能是由非标准的Excel文件造成的,Microsoft似乎处理得很好,但是Apache可能会窒息。你可以试着做以下的事情:

  • 确保使用POI的最新版本(3.13),因为有许多可能相关的be
  • 向生成文件的应用程序报告问题,以使其以更标准的方式提供文件。
  • 使用一个为您失败的示例文件向Apache报告一个问题
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30785203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档