Java中的Biffexception

当我尝试读取Java文件中的Excel文件时,会抛出“biffexception”。

这是什么意思? 我试图谷歌,但无法find一个合适的解释。

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) 

用于BiffException的javadoc。

阅读biff文件时抛出exception。

这个例外有一些消息应该提供一些关于原因的信息:

 excelFileNotFound excelFileTooBig expectedGlobals passwordProtected streamNotFound unrecognizedBiffVersion unrecognizedOLEFile 

编辑:

unrecognizedOLEFile似乎意味着某些东西被embedded在无法读取的文件中 。

我也面临类似的问题,并能够解决它。

我正在使用.xlsx文件,当我将其更改为.xls文件时,它工作得很好。 似乎JXL不支持.xlsx格式。

如果有人知道它支持,请纠正我。

使用复合文档文件格式(也称为“OLE2存储文件格式”或“Microsoft Office兼容存储文件格式”)存储具有多张工作表(来自BIFF5)的Excel工作簿。 它包含几个不同types的数据stream。

关于复合文档文件格式的完整文档可以在http://sc.openoffice.org/compdocfileformat.pdffind&#x3002;

我认为exception意味着你的parsing库无法识别它(例如:在POI和Jexcelapi中不能分析biff5格式)。 您可以检查您的文件版本,在Office中打开它,然后单击“另存为”,格式列表在filedialog是它的当前文件版本。

这个页面在“biff”包中提到了一些例外,也许这可以给你更多的线索,如果你能find你的特殊例外。