情景:本人想把xlsm文件导入到数据库中,但是
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 8.0;";
是office2003的连接,只适用于excel.xls,连excel.xlsx都不是用。所以我需要找一个office2007的连接。
string strConn =
"Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" +
excelFile
+ ";" + "Extended Properties='Excel 12.0;IMEX=1';";
但是这时候出现以下错误:
未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
问题描述:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
环境:【win7 64bit 专业版】【Vs2010专业版】【Office 2010专业版】
环境:【win7 64bit 专业版】【Vs2010专业版】【Office 2010专业版】
查资料发现:
看office 是安装什么版本...
如果 你打开一个access,在任务管理器中看到 msAccess.exe *32 , 你还是将你程序的调试和编译平台换成 x86,
X64 的Exe 调用 X86 的数据驱动程序 ,好像是不行。
X86 的Exe 调用 X64 的数据驱动程序, 好像是可以,向下兼容...
你安装 AccessDatabaseEngine,如果你的access 是 X86, 就算是你装 AccessDatabaseEngine X64 又有啥用,AccessDatabaseEngine 主要是解决没有安装 office 的机器上的还能够支持access数据访问...
看office 是安装什么版本...
如果 你打开一个access,在任务管理器中看到 msAccess.exe *32 , 你还是将你程序的调试和编译平台换成 x86,
X64 的Exe 调用 X86 的数据驱动程序 ,好像是不行。
X86 的Exe 调用 X64 的数据驱动程序, 好像是可以,向下兼容...
你安装 AccessDatabaseEngine,如果你的access 是 X86, 就算是你装 AccessDatabaseEngine X64 又有啥用,AccessDatabaseEngine 主要是解决没有安装 office 的机器上的还能够支持access数据访问...
于是我把目标平台改成x64,成功解决问题。