2009-11-17 48 views
2

當我嘗試讀取Java中的Excel文件時,它會拋出「biff異常」。Java中的Biff異常

這是什麼意思?我試圖Google,但無法找到合適的解釋。

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

你可以發佈stacktrace嗎? – 2009-11-17 09:43:50

+4

如果有人想知道BIFF是什麼意思,它是Excel文件格式,是「二進制交換文件格式」的縮寫。 – Spoike 2009-11-17 09:56:50

回答

3

javadoc爲BiffException

讀取biff文件時拋出異常。

這個例外有一些消息應該提供有關故障原因的一些信息:

excelFileNotFound   
excelFileTooBig   
expectedGlobals   
passwordProtected   
streamNotFound   
unrecognizedBiffVersion 
unrecognizedOLEFile 

編輯:

unrecognizedOLEFile似乎意味着的東西是embedded in the file that cannot be read

+1

最後一行的鏈接已損壞 – 2012-07-22 22:33:39

0

This page提到了一些例外,在「一擊」包,或許可以給你進一步的線索,如果你能在那裏找到你的特殊的例外。

1

使用複合文檔文件格式(也稱爲「OLE2存儲文件格式」或「Microsoft Office兼容存儲文件格式」)存儲具有多張工作表(來自BIFF5)的Excel工作簿。它包含用於不同類型數據的多個流。

的複合文檔文件格式的完整文檔可在 http://sc.openoffice.org/compdocfileformat.pdf

找到我認爲除了意味着你的解析庫不能識別它(例如:BIFF5格式無法在POI進行解析和JExcelApi的)。 你可以檢查你的文件版本,在Office中打開它並點擊'SAVE AS',filedialog中的格式列表就是它的當前文件版本。

5

我也遇到類似的問題,並能夠解決它。

我正在使用.xlsx文件,當我將其更改爲.xls文件時,它工作得很好。看起來JXL不支持.xlsx格式。

如果有人知道它支持,請糾正我。