win10:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

说明:C#以 oledb的方式读取excel时,xls格式的文件读取正常,但是xlsx格式的提示错误:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

解决办法:

1、下载对应组件安装:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

注意:要选择AccessDatabaseEngine.exe,而不是AccessDatabaseEngine64.exe,否则还会提示错误!!!

2、控制面板-管理工具中打开IIS(如果没有,在控制面板-程序与功能-启用或关闭windows功能-选择IIS功能),设置如下

重新启动

3、修改连接字符串

支持xls:strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=‘Excel 8.0;HDR=False;IMEX=1‘";

支持xls和xlsx:strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES\"";

public static DataTable ReadExcelToTable(string path)
        {
            try
            {
                string strConn;
                // strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=‘Excel 8.0;HDR=False;IMEX=1‘";
                strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES\"";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等

                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, "Sheet1");
                OleConn.Close();

                return OleDsExcle.Tables["Sheet1"];
            }
            catch (Exception err)
            {
                MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }

原文地址:https://www.cnblogs.com/codinghard/p/11051174.html

时间: 2024-08-14 08:47:57

win10:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序的相关文章

“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案

不论是连接Access数据库或是SQL Server数据库,“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序.”这个问题从Office2016开始,困扰了我好多年. 我的软件版本:Win10(x64)版本系统 + Office 2019(x64)版本软件 + Visual Studio 2019 今天终于得到解决. 解决方法:(就两步,都很关键) 1.安装“Microsoft Access 2010 数据库引擎可再发行程序包 ” 下载地址:https://www

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 解决办法: 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载. 以前的版本: http://www.microsoft.com/zh-CN/download/confirmation.aspx?id=23734

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

解决办法: 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载.然后安装就行了. 本错误是由于你使用了ACCESS2007版本建立的数据库,但服务器中没有相配合使用的程序,所以出错. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈

System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。

最近用MVC3 做了一个项目,发布时项目的中的数据导入功能(Excel格式,有固定的导入数据模板)居然不能用,查看报错日志,发现是“System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序............”. 在网上找一些资料,把问题解决了.如下图所示. 后台功能代码:导入与导出实现代码. 1 #region -使用IO写入Excel- 2 /// <summary> 3 /// 使用IO写入E

未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序。

场景:在用excel 导入的时候页面出现"未在本地计算机上注册"Microsoft.Ace.OleDb.12.0"提供程序."的错误 最终验证解决方案如下: iis设置解决方案  选择 该应用程序的 应用程序池 ------>选择高级设置 --------->启用32位应用程序 ------->true 或 去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1

c#操作Excel时,抛出异常:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”

我们开发环境下,使用excel导入数据到数据库中,编译的软件起初是x86 方式,起初并未发现什么问题,一切很正常: 程序该进的过程: 后来导入文件一次就要读取几百G的数据导入数据库中,使用编译的X86程序就不正常了,尽管我解析文件(.xml)方式从数据流改用XmlTextReader,但还是会跑出内存溢出(“System.OutofMemoryException”多么痛苦,悲剧,无奈呀),后来同事建议我将程序编译x64后问题真正的解决了(我们开发机时64G内存,呵呵.) 程序改进后问题内存溢出问

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序的解决方法

在win7 操作系统中SQL2008导入excel2007 出现: 未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序 的解决方法: 出现这个原因是office 2007没有安装64位的数据驱动,下载: http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe 数据引擎安装后即可.

未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序

最近做了一个上位机项目,遇见了很多问题点,一直没有时间总结.现在项目告一段落,上来总结一下,都是通过网络查找资料解决的.再次感谢那些前辈,再次做一下记录,方便同行参考,也方便自己以后查看. 界面如下: 一:问题点,做用户登录时出现:""未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序"" 的弹框报错. 下面是代码 using System; using System.Collections.Generic; using System.

在Studio中使用Access数据库时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”

错误提示: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的解决方案: 此程序,为Office 2007 Access的相关组件. 下载并安装AccessDatabaseEngine.exe软件,Download Link.