当我尝试用Java读取Excel文件时,它会抛出“biff exception”。
这是什么意思?我试图谷歌它,但无法找到正确的解释。
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at jxl.Workbook.getWorkbook(Workbook.java:198)
at Com.Parsing.ExcelFile.excel(Extract.java:20)
at Com.Parsing.Extract.main(Extract.java:55)
答案 0 :(得分:5)
我也遇到了类似的问题,并且能够解决它。
我使用的是.xlsx文件,当我将其更改为.xls文件时,它工作正常。似乎JXL不支持.xlsx格式。
如果有人知道它支持,请纠正我。
答案 1 :(得分:3)
BiffException的javadoc。
读取biff文件时抛出异常。
此异常有许多消息应提供有关原因的一些信息:
excelFileNotFound
excelFileTooBig
expectedGlobals
passwordProtected
streamNotFound
unrecognizedBiffVersion
unrecognizedOLEFile
修改强>
unrecognizedOLEFile
似乎意味着某事embedded in the file that cannot be read。
答案 2 :(得分:1)
使用复合文档文件格式(也称为“OLE2存储文件格式”或“Microsoft Office兼容存储文件格式”)存储具有多个工作表(来自BIFF5)的Excel工作簿。它包含几种不同类型数据的流。
可在以下位置找到复合文档文件格式的完整文档 http://sc.openoffice.org/compdocfileformat.pdf
我认为异常意味着您的解析库无法识别它(例如:无法在POI和Jexcelapi中解析biff5格式)。 您可以检查您的文件版本是否在Office中打开并单击“保存为AS”,文件列表中的格式列表是它的当前文件版本。
答案 3 :(得分:0)
This page在“biff”软件包中提到了一些例外情况,如果你能在那里找到你的特殊例外情况,可能会给你更多的线索。