2009-10-30 99 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文件格式将是最好的方法。