在本地运行,但不在服务器上,因为“数据源名称未find,没有指定默认驱动程序”

我想用Java读取我的单元格值(在Excel文件中)。 在这个过程中,我使用ODBC将Excel文件作为我的数据源。 我将用户,密码,URL和所有属性代码编写在一个单独的.properties文件中,供我的Java程序读取并连接到ODBC。 当我在本地机器上运行它时,它工作正常,但在服务器上运行时却失败。 我收到的错误是:

[Microsoft] [ODBC驱动程序pipe理器]数据源名称未find,没有指定默认驱动程序

服务器是在Windows 2012上运行的64位机器。我在控制面板(服务器)上查看了我的pipe理工具。 它有两个ODBC,一个用于32位,另一个用于64位。

我的代码只在本地机器上而不是在服务器上运行的原因是什么?

是因为有两个工具,程序混淆在哪一个寻找?

我的DB = jdbc:odbc:驱动程序= {Microsoft Excel驱动程序(* .xls,* .xlsx)}; DBQ = c:/data.xls; READONLY = true; DriverID = 22;

这是我在.properties文件中编写的代码。 用户&pwd字段为空。

有什么我失踪或是其他东西吗?

我认为这里最好的select是从控制面板创build一个ODBC DSN,然后尝试通过它连接:

java.sql.Connection c = java.sql.DriverManager.getConnection( "jdbc:odbc:exsh", "", "" ); 

而“exsh”是指向将被处理的电子表格文件的DSN的名称。

没有DSN,连接string应该是:

 "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=c:/data.xls" 

请记住,由于您位于64位系统上,因此可能需要安装64位OLEDB提供程序(ODBC)(MSDASQL) 。