2011-06-08 139 views
1

我有使用Apache POI編寫的代碼,用於從使用hssf的.xls工作表讀取數據。我希望程序使用org.apache.poi.ss.usermodel來讀取.xlsx工作表。下面是代碼: (_filename被傳遞到功能)Apache POI - 使用usermodel讀取.xlsx和.xls文件

java.io.FileInputStream中FS =新java.io.FileInputStream中(_filename) 工作簿簿= WorkbookFactory.create(FS);

它引發.xlsx文件的以下異常:InavlidFormatException - 無法讀取內容類型部分! 我在Visual Studio中這樣做,所以輸出窗口顯示「在poi-ooxml-3.7-20101029.dll中發生了類型'org.apache.poi.openxml4j.exceptions.InvalidFormatException'的第一個機會異常。

而對於一個.xls文件,輸出窗口說「類型的第一次機會異常‘java.io.IOException異常’發生在IKVM.OpenJDK.Core.dll」

這將是巨大的,如果有人可以幫助我解決這個問題。這方面的工作從昨天起。

太謝謝你了! 達雅

回答

0

錯誤消息表明您的.xlsx文件不是有效的文件。我會仔細檢查你傳遞的是正確的文件,它確實是一個Excel文件(而不是別的 - 在你的.xlsx的情況下,我懷疑你只是有一個普通的zip文件)

+0

我檢查了文件,這是正確的..雖然奇怪,但因爲當我寫了一個.xls文件並以.xlsx格式複製它的另一個程序,excel抱怨說它是無效的並且不會打開它,所以我不得不「修復」它,那麼原來的程序我已經接受了這個文件。問題出在我使用的dll上,因爲這些文件的副本位於程序可以訪問的多個位置。我只需刪除重複的副本。無論如何感謝一堆! – 2011-06-10 17:47:20

相關問題