c# - C# 中 Excel 2016 的 oledb 连接字符串

标签 c# excel vba connection

我一直在尝试使用 C# 访问 2016 MS Excel 文件,但连接字符串仅在 2013 MS Excel 之前有效。

我当前的连接字符串:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx; Extended Properties="Excel 12.0 Xml;HDR=YES";

是否有针对 MS Excel 2016 的任何修改过的 oledb 连接字符串?

最佳答案

这发生在我通过 Office 365 程序从本地安装的 Office 13 升级到 Office 16 之后。我收到此异常:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。

我找不到通过 Office 365 安装过程安装驱动程序的方法。

我必须安装 https://www.microsoft.com/en-us/download/details.aspx?id=13255 - x64 版本没有解决问题,不得不使用 32 位版本。

我在 App.config 中的连接字符串

    <add key="Excel07ConnectionString" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES'"/>

使用它的代码:

            var excelConnectionString = ConfigurationSettings.GetExcelConnection(fileLocation);
            var dataTable = new DataTable();

            using (var excelConnection = new OleDbConnection(excelConnectionString))
            {
                excelConnection.Open();
                var dataAdapter = new OleDbDataAdapter("SELECT * FROM [Users$]", excelConnection);
                dataAdapter.Fill(dataTable);
                excelConnection.Close();
            }
            Console.WriteLine("OpenExcelFile: File successfully opened:" + fileLocation);
            return dataTable;

关于c# - C# 中 Excel 2016 的 oledb 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37195033/

相关文章:

c# - nhibernate queryover.where 未将对象引用设置为对象的实例

python - 如何设置Excel选项按钮值(通过python)?

vba - 如何判断文本是否适合单元格?

c# - 检查列表中的所有值是否相等

c# - C++ 比 C# 快多少?

Python 2.7 - win32com.client - 将工作表从一个工作簿移动到另一个工作簿

PHP Excel 导入到 MYSQL 数据库在本地主机上工作正常,但在在线服务器上不行

ms-access - 为排序的 MS Access 查询中的记录分配排名/索引

VBA 打开 Excel 文件 - 对话框更改

C# SQLite 连接器问题