Windows7 64位机中如何使用ODBC 64位读取excel文件
How to use the ODBC 64 bit to read the excel file in Windows 7 64 bit machine
I need to read the excel file through ODBC 64 bit in my windows 7 64
bit machine.
我的系统默认有两个odbcad32
- [32 位] C:\Windows\SysWOW64\odbcad32
(它包含微软 excel 驱动程序)
- [64位] C:\Windows\System32\odbcad32 (它没有
微软 excel 驱动程序)
由于系统没有Microsoft Excel 64位ODBC驱动,我下载AccessDatabaseEngine_x64安装
安装成功后
[64 位] C:\Windows\System32\odbcad32 Microsoft Excel 驱动程序 存在。
现在当我通过eclipse 运行 java 程序。错误消息显示为
找不到合适的驱动程序 jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/ashokkumarg/Desktop/Excel/TestCaseData.xls
但是相同的代码在 Windows 32 位机器上工作得很好。不知道是什么原因。
Java版本
Windows 7 32 位机器(代码工作的地方) 1.7.0_51
Windows 7 64 位机器(代码失败) 1.8.0_31
代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectionTest {
public static void main(String[] args) throws SQLException {
Connection c = null;
Statement stmnt = null;
System.out.println("Test case is started Running");
try{
c = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/ashokkumarg/Desktop/Excel/TestCaseData.xls");
stmnt = c.createStatement();
String query = "select * from [TestCase$];";
ResultSet rs = stmnt.executeQuery( query );
while( rs.next() )
{
System.out.println( rs.getString( "Page" ));
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
I have few questions over here:
当存在两个odbcad32时,如何在Windows7 64位机器上使用ODBC 64位读取excel文件。
While 运行ning 程序是否正在使用 32 位 odbcad32 驱动程序详细信息。如果是这样,我需要如何配置 ODBC 64 位驱动程序才能在程序中使用它。
正如您所说的,同样的代码在 32 位机器上运行良好,我想您的应用程序也是 32 位的?
注意:驱动程序的位数不取决于操作系统,而是取决于尝试使用该驱动程序的应用程序。
因此:如果您有 32 位应用程序,则需要使用 32 位 ODBC 管理工具来配置 DSN 条目,并且需要相应的 32 位 ODBC 驱动程序。
如果您的应用程序是 64 位的,您需要使用 64 位版本的管理工具以及 64 位驱动程序。
因此,如果您的 Java 运行时是 32 位运行时,您需要始终使用 32 位版本的驱动程序。如果您使用 64 位 java 运行时,您将需要使用 64 位版本的驱动程序。
如果 System.getProperty("java.version")
返回“1.8.xxxx”,那么该机器是 运行ning Java 8 而 JDBC-ODBC 桥不是可用,因为它已从 Java 8.
中删除
如果您希望您的应用程序使用 ODBC,那么您必须确保您的用户是 运行ning Java 7 或更早版本。如果您不直接管理他们的机器,这可能会很困难,因为 Java 运行time (JRE) 的自动更新功能现在分发 Java 8.
如果您希望您的应用程序能够在 Java 8 下 运行,那么您将不得不使用其他方式来访问 Excel 数据。 Apache POI 是一种可能性。
I need to read the excel file through ODBC 64 bit in my windows 7 64 bit machine.
我的系统默认有两个odbcad32
- [32 位] C:\Windows\SysWOW64\odbcad32 (它包含微软 excel 驱动程序)
- [64位] C:\Windows\System32\odbcad32 (它没有 微软 excel 驱动程序)
由于系统没有Microsoft Excel 64位ODBC驱动,我下载AccessDatabaseEngine_x64安装
安装成功后
[64 位] C:\Windows\System32\odbcad32 Microsoft Excel 驱动程序 存在。
现在当我通过eclipse 运行 java 程序。错误消息显示为
找不到合适的驱动程序 jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/ashokkumarg/Desktop/Excel/TestCaseData.xls
但是相同的代码在 Windows 32 位机器上工作得很好。不知道是什么原因。
Java版本
Windows 7 32 位机器(代码工作的地方) 1.7.0_51
Windows 7 64 位机器(代码失败) 1.8.0_31
代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectionTest {
public static void main(String[] args) throws SQLException {
Connection c = null;
Statement stmnt = null;
System.out.println("Test case is started Running");
try{
c = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/ashokkumarg/Desktop/Excel/TestCaseData.xls");
stmnt = c.createStatement();
String query = "select * from [TestCase$];";
ResultSet rs = stmnt.executeQuery( query );
while( rs.next() )
{
System.out.println( rs.getString( "Page" ));
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
I have few questions over here:
当存在两个odbcad32时,如何在Windows7 64位机器上使用ODBC 64位读取excel文件。
While 运行ning 程序是否正在使用 32 位 odbcad32 驱动程序详细信息。如果是这样,我需要如何配置 ODBC 64 位驱动程序才能在程序中使用它。
正如您所说的,同样的代码在 32 位机器上运行良好,我想您的应用程序也是 32 位的?
注意:驱动程序的位数不取决于操作系统,而是取决于尝试使用该驱动程序的应用程序。
因此:如果您有 32 位应用程序,则需要使用 32 位 ODBC 管理工具来配置 DSN 条目,并且需要相应的 32 位 ODBC 驱动程序。
如果您的应用程序是 64 位的,您需要使用 64 位版本的管理工具以及 64 位驱动程序。
因此,如果您的 Java 运行时是 32 位运行时,您需要始终使用 32 位版本的驱动程序。如果您使用 64 位 java 运行时,您将需要使用 64 位版本的驱动程序。
如果 System.getProperty("java.version")
返回“1.8.xxxx”,那么该机器是 运行ning Java 8 而 JDBC-ODBC 桥不是可用,因为它已从 Java 8.
如果您希望您的应用程序使用 ODBC,那么您必须确保您的用户是 运行ning Java 7 或更早版本。如果您不直接管理他们的机器,这可能会很困难,因为 Java 运行time (JRE) 的自动更新功能现在分发 Java 8.
如果您希望您的应用程序能够在 Java 8 下 运行,那么您将不得不使用其他方式来访问 Excel 数据。 Apache POI 是一种可能性。