You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#导入Excel至SQL Server遇Microsoft.ACE.OLEDB.12.0未注册错误求助

排查"Microsoft.ACE.OLEDB.12.0未注册"异常的遗漏点

以下是你可能忽略的几个关键排查方向:

  • Access Database Engine版本与架构不匹配
    即使项目以x86编译,若安装的是64位版ACE驱动,x86程序仍无法加载驱动。需确认安装的是32位版ACE驱动:

    • 若系统已安装64位Office,直接安装32位ACE会报错,需用被动安装命令:AccessDatabaseEngine.exe /passive
  • 连接字符串参数不准确
    针对.xlsx格式文件,建议调整Extended Properties参数:

    • 替换为Extended Properties="Excel 12.0 Xml;HDR=YES;"(HDR=YES表示第一行是表头,按需调整为HDR=NO),原参数Excel 12.0更适配旧版.xls格式,可能导致驱动识别异常
  • Web项目的IIS应用池设置
    若为ASP.NET类Web项目,需检查IIS应用池的32位启用状态:

    • 在IIS管理器中找到对应应用池,进入「高级设置」,将「启用32位应用程序」设为True,否则即使项目编译x86,IIS仍会以64位环境运行,无法加载32位ACE驱动
  • 手动重新注册驱动
    尝试手动注册32位ACE驱动:

    • 以管理员身份打开32位命令提示符(路径为C:\Windows\SysWOW64\cmd.exe),执行注册命令:regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL"
    • 注意:OFFICE14对应Office 2010版,若为2016/2019/365版本,路径需改为OFFICE16
  • 文件权限间接导致驱动加载失败
    Excel文件所在目录的权限不足,可能触发驱动加载异常(表现为未注册错误):

    • 确保程序运行身份(如Web应用池身份、桌面程序当前用户)拥有目标Excel文件的读取权限
  • Office与ACE驱动的版本冲突
    若系统安装了64位Office,即使被动安装32位ACE驱动,仍可能存在版本冲突:

    • 可尝试修复Office安装,或改用无需ACE驱动的第三方库(如ExcelDataReader)读取Excel文件,规避驱动依赖问题

内容的提问来源于stack exchange,提问作者Lorenzo Santarelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:09:10