c# - 尝试在 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”二进制文件的 .NET 应用程序将作为 32 位进程执行,即使在 64 位 Windows 上也是如此。不知道为什么,可能是一些旧的兼容性原因。

很容易改变。打开项目属性,“Build”选项卡,并取消选中“Prefer 32-bit”复选框。取消选中该复选框后,您的应用程序将在 64 位操作系统上作为 64 位进程执行,然后您将获得已安装的 64 位版本的 ACE。

关于c# - 尝试在 C# 中打开 Excel 工作表但未安装提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55685922/

相关文章:

c# - 如何允许需要 Authorization header 的缓存 API 端点?

c# - 在一种方法中锁定某个对象是否也会使其在其他方法中锁定?

excel - Excel 中的 D3.Js 图表

python - 使用 Pandas 在选项卡中的单个 csv 表中添加多个 csv

javascript - 在nodejs/javascript中的excel中创建动态列数或标题

vba - Excel VBA : Copy Sheet from a workbook to another workbook in different location

c# - 声明一个类作为它自己的成员

c# - ASMX 后响应正文缺少最后一个字符

c# - IEnumerable 不为 null,但在迭代时抛出 NullReferenceException

arrays - ReDim 上的 2D 数组下标超出范围