我正在执行一项简单的任务:读取 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 但没有成功!
Thanks
讨论于https://bz.apache.org/bugzilla/show_bug.cgi?id=52447 https://bz.apache.org/bugzilla/show_bug.cgi?id=52447表明这可能是由非标准 Excel 文件引起的,Microsoft Excel 似乎可以很好地处理这些文件,但 Apache POI 可能会卡住。您可以尝试以下操作:
- 确保您使用最新版本的 POI (3.13),因为存在许多可能相关的错误修复
- 向生成文件的应用程序报告问题,尝试使其以更标准的方式提供文件
- 使用对您来说失败的示例文件向 Apache POI 报告问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)