Java中的Biff异常

时间:2009-11-17 09:41:58

标签: java excel exception

当我尝试用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)

4 个答案:

答案 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”软件包中提到了一些例外情况,如果你能在那里找到你的特殊例外情况,可能会给你更多的线索。