关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题

来源:互联网 发布:oppo wlan 移动数据 编辑:程序博客网 时间:2024/05/21 13:23

最近在新公司电脑上跑以前的selenium测试框架的时候,抛出了如下的错误

    出现的是ODBC Driver问题:    [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified  

我查看了我的系统属性 --    64 bit System    ,    Microsoft Excel    --   32 bit  

而这个selenium框架之前都是运行在    win7 32位    系统上的,且框架脚本编译之后也是32位的,所以初步判断这与系统64位相关。 

解决方案:  

1    . 下载32位的AccessDatabaseEngine.exe文件并安装(    默认安装即可    ),由于我电脑上的Office是2010版本,所以需要下载2010版本的Access Data Engine。下载地址如下: 

http://www.microsoft.com/en-us/download/details.aspx?id=13255  

由于我的32位selenium框架移到了64位系统上运行,而32位编译的项目在64位系统上运行需要有32位的驱动,并且系统上安装的office也是32位的,故需要使用   32位的AccessDatabaseEngine.exe     驱动文件。 

Description:  

AccessDatabaseEngine.exe这个组件的作用是允许非 Microsoft Office 应用程序可以使用它们从 2010 Microsoft Office system 文件中读取数据。例如从 Microsoft Office Access 2010(mdb 和 accdb)文件以及 Microsoft Office Excel 2010(xls、xlsx 和 xlsb)文件中读取数据。这些组件还支持与 Microsoft Windows SharePoint Services 和文本文件建立连接。

此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。

1)    如果你是使用 OLEDB 的应用程序开发人员,请将 ConnectionString 属性的 Provider 参数设置为“Microsoft.ACE.OLEDB.12.0”, 如果要连接到 Microsoft Office Excel 数据,请将“Excel 12.0”添加到 OLEDB 连接字符串的扩展属性中。 

2)    如果你是使用 ODBC 连接到 Microsoft Office Access 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”   
         如果你是使用 ODBC 连接到 Microsoft Office Excel 数据的应用程序开发人员,请将连接字符串设置为“   Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file     ” 

2    . 对ODBC数据源进行配置 

    如果你打开    ODBC管理器    ,由于系统是64位的,所以打开的也是64位版本的ODBC管理器。由于我的selenium框架是32位程序,它不能从64位的ODBC管理器中创建的DSN(Data Source Name)中找到相应的数据源,故会发生上面的错误。 

    而32位的ODBC Manager是在如下路径的:    C:\Windows\SysWOW64\odbcad32.exe      

双击odbcad32.exe文件,将出现如下窗口:

  

    点击    Add    button添加数据源,选择    Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)  

  

最终添加System DNS如下:

最后点击OK就配置成功了。

注意:最后一定要记得重启下电脑之后再运行相应的应用程序。  

通过以上的步骤,再去运行selenium框架中的代码,就没有抛错,而是顺利执行了。连接Microsoft Excel成功了。

总结:    遇到问题还是需要抓住重点,反复排查,并且好好利用google, baidu这些有利工具,将所有搜索到的信息进行综合考虑,最终得到解决方案。 

 

0 0