我已经阅读了很多有关此问题的信息。
SO对此有很多问题,但问题仍然存在,如下所示:
我知道此connection string
适用于Office的较旧版本:
string oldCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ path + ";" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'";
我知道Office的较新版本有以下connection string
:
string nweCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ path + ";Extended Properties=Excel 12.0;";
但是,当我将connection string
用于带有 ACE 的较新版本时,出现此错误:
“ Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。
我还阅读了其他问题,我应该先安装 ACE ,然后一切正常。
我没有安装 ACE 驱动程序,其他应使用该应用程序的计算机也没有安装,是否可以使用 JET 读取Excel文件Office 2016或365( 2003年以上的所有产品)。
我不能在每个客户端中都安装 ACE 以便能够与我的应用程序一起使用,这根本不实用。
有没有办法做到这一点?
答案 0 :(得分:1)
很多年前,我不得不解决完全相同的问题。我将两个连接字符串都添加到了配置中。首次使用该应用程序时,我检查了一个ACE驱动程序(因为它是更新的)。如果失败,我将退回到Jet。将工作连接字符串保存在AppConfig中(您也可以将值保存到config)。因此,下次运行该应用程序时,它将首先检查应用程序配置并在该计算机上使用该连接字符串。
这是我遵循的步骤:
注意:将设置更新为AppConfig文件时,它们不会直接更新为原始文件。在C:\ Users
基于上述内容,如果您必须重置选择,则必须删除上面用户文件夹中的配置文件,这应该从步骤1重新开始。