试图用C#打开excel工作表,但未安装获取提供程序
我已经安装了64位版本的ACE,但由于某些原因它无法工作。我一直在获取未在计算机上注册的提供程序。我正在使用以下连接字符串试图用C#打开excel工作表,但未安装获取提供程序,c#,excel,C#,Excel,我已经安装了64位版本的ACE,但由于某些原因它无法工作。我一直在获取未在计算机上注册的提供程序。我正在使用以下连接字符串 OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0'"); 使用64位版本需要额外的东西吗?使用默认项目设置,编译为“任意CPU”二进
OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0'");
使用64位版本需要额外的东西吗?使用默认项目设置,编译为“任意CPU”二进制文件的.NET应用程序即使在64位Windows上也将作为32位进程执行。不知道为什么,可能是一些旧的兼容性原因
很容易改变。打开项目属性,“构建”选项卡,取消选中“首选32位”复选框。如果不选中该复选框,您的应用程序将在64位操作系统上以64位进程的形式执行,然后您将获得已安装的64位版本的ACE。您是否在“构建”选项卡上签入了“首选32位”项目属性?感谢您的指针Soons,Top Man。我不知道该选项存在,我检查了该值并运行了代码,它成功地打开或失败了文件而没有抛出错误。失败意味着它受密码保护。遗憾的是,这是一个评论,而不是一个回答,否则它会得到“分数”