2009-10-30 136 views
3

我想使用NetBeans從J2SE中的Excel文件讀取文本。我在這裏找到了一篇關於使用Apache POI和JExcelApi的文章,但我不希望依賴於外部軟件包。如果可能的話,只使用Java內置包。

This幾乎工作,但它給了我一個異常錯誤:在Java中閱讀Excel文件(.xls)

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 

我是否需要安裝一些ODBC驅動程序(如果有的話,它的驅動程序以及如何安裝)? 解決此問題的最簡單方法是什麼? 請幫忙,提前致謝

+2

您的「偏好」不依賴於外部包裝似乎被誤導了。畢竟,取決於一個ODBC驅動程序顯着更脆弱(取決於在Windows上運行,取決於正在安裝的Excel ODBC驅動程序) – CarlG 2009-10-30 22:07:19

回答

7

總結一下已經說過,從Java訪問Excel數據可以通過兩個步驟完成:
1)將excel文件設置爲ODBC數據源。
2)使用JDBC-ODBC橋訪問Excel數據,使用標準的JDBC API。

聽起來你可能有兩個問題:
1)ODBC數據源可能沒有設置,因此「找不到數據源」錯誤。
2)JDBC-ODBC橋驅動程序的jar可能不在你的類路徑中,因此「沒有指定驅動程序」。谷歌圍繞它。這不難找到。

+0

很好的答案!我希望我能給你一個投票 – evilReiko 2009-10-31 14:00:54

2

您需要設置一個ODBC驅動程序,它指向您的Excel電子表格作爲數據源。您可以使用Windows ODBC管理器創建一個並引用它,也可以使用代碼here在同一教程網站上創建它。

+0

最佳答案,thanx很多!我解決了我的問題:D – evilReiko 2009-10-31 13:59:31

+0

gret。你能標記我嗎? – 2009-10-31 15:16:48

2

我做了一個小應用程序,它可以很快地讀入一個Excel工作表中的JTable模型。我認爲你應該重新考慮你對外部庫的使用。

+0

Thorbjørn:這應該發表在評論部分。 – OscarRyz 2009-10-30 21:22:23

+1

不,我的建議是讓他使用JExcelAPI庫來讀取他的文件。這將是獨立於平臺且獨立的,而ODBC不是。 – 2009-10-30 21:36:52

2

如果您只想讀取數據,將XLS文件轉換爲CSV文件格式將是最好的方法。