excel - POI : Unexpected record type org. apache.poi.hssf.record.HyperlinkRecord

标签 excel apache-poi row

我正在执行一项简单的任务:读取 Excel 文件并将其转换为对象。不过,我在读取 Excel 文件 (.xls) 时遇到问题 我将从外部系统接收它(也许他们自动生成它)。如果我打开它并进行简单的保存(无论是否更改 Excel 文件中的任何内容),我的解析器逻辑都可以正常工作。但是,如果我不编辑和保存文件并尝试按原样解析原始文件,则在加载 .xls 文件时会在这一行出现异常:

HSSFWorkbook xlsWorkbook = new HSSFWorkbook(inputDocument);

以下是异常(exception)情况:

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,但没有成功!

谢谢

最佳答案

讨论https://bz.apache.org/bugzilla/show_bug.cgi?id=52447表明这可能是由非标准 Excel 文件引起的,Microsoft Excel 似乎可以很好地处理这些文件,但 Apache POI 可能会卡住。您可以尝试以下操作:

  • 确保您使用最新版本的 POI (3.13),因为存在许多可能相关的错误修复
  • 向生成文件的应用程序报告问题,以尝试使其以更标准的方式提供文件
  • 使用对您来说失败的示例文件向 Apache POI 报告问题

关于excel - POI : Unexpected record type org. apache.poi.hssf.record.HyperlinkRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785203/

相关文章:

javascript - 如何使用 Javascript 操作行和表的背景颜色

mysql - 选择行mysql的最佳方法

javascript - 如何删除 parse.com 中的特定行?

Excel宏: Find and Compare Username from a Range of Authorized Usernames

c# - 将 OpenXML 创建的 Excel 电子表格导出到客户端

java - 如何使用 apache poi 4.1.0 创建带有 `WorkbookFactory` 的工作簿

excel - 使用VBA代码根据excel列表列更改文件夹名称

excel - 在 Excel 中使用 IF() 和 TIMEVALUE()

java - Apache POI - 处理数据的无效部分