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

本地未注册Microsoft.Jet.OLEDB.4.0,ASP.NET读取Excel报错求助

解决ASP.NET读取Excel时的Microsoft.Jet.OLEDB.4.0未注册错误

核心问题分析

  • 你安装的Microsoft ODBC/OLE DB Driver for SQL Server仅用于连接SQL Server,和Excel的OLEDB驱动无关联,无法解决当前问题。
  • Microsoft.Jet.OLEDB.4.0是已淘汰的32位驱动,64位系统默认不支持该组件。

具体解决方案

1. 统一替换为ACE驱动并修复连接字符串错误

不管是.xls还是.xlsx格式,都使用Microsoft.ACE.OLEDB.12.0驱动(兼容两种格式,支持64位系统),同时修复连接字符串中Data Source缺少等号的语法错误:

if (Path.GetExtension(filePath) == ".xls")
{
    connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
}
else if (Path.GetExtension(filePath) == ".xlsx")
{
    connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1'";
}
connectionString = string.Format(connectionString, filePath);

2. 安装对应版本的ACE驱动

根据系统和应用程序位数选择适配版本(不可同时安装32位和64位,会导致冲突):

  • 64位系统+未启用32位应用池:安装64位版Microsoft Access Database Engine
  • 64位系统+需启用32位应用池:安装32位版Microsoft Access Database Engine

3. 调整IIS应用池设置(若需32位兼容)

如果安装了32位ACE驱动,需配置应用池:

  • 打开IIS管理器,找到目标应用池
  • 右键选择「高级设置」
  • 将「启用32位应用程序」设置为True

4. 验证驱动注册状态

安装完成后,可通过以下步骤确认驱动是否成功注册:

  • 以管理员权限打开命令提示符
  • 执行命令:reg query "HKEY_CLASSES_ROOT\Microsoft.ACE.OLEDB.12.0"
  • 若返回有效注册表项,说明驱动已正确注册

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:41:00