Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图用C#打开excel工作表,但未安装获取提供程序_C#_Excel - Fatal编程技术网

试图用C#打开excel工作表,但未安装获取提供程序

试图用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”二进

我已经安装了64位版本的ACE,但由于某些原因它无法工作。我一直在获取未在计算机上注册的提供程序。我正在使用以下连接字符串

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。我不知道该选项存在,我检查了该值并运行了代码,它成功地打开或失败了文件而没有抛出错误。失败意味着它受密码保护。遗憾的是,这是一个评论,而不是一个回答,否则它会得到“分数”