• 系统从Excel导入数据时报:The Microsoft.Ace.OleDb.12.0 provider is not registered on the local machine错误
  • 发布于 2个月前
  • 196 热度
    3 评论
  • 追龙
  • 4 粉丝 2 篇博客
  •   
最近一个系统在用Excel导入数据时报如下错误:The 'Microsoft.Ace.OleDb.12.0' provider is not registered on the local machine.这个错误是什么意思?要怎么解决?我用的是Excel2007
用户评论
  • Kion
  • 出现这种错误一般有两种原因:

    1、你的电脑在安装Office2007客户端时没有安装“数据连接组件”
    2、当前Web应用程序的应用程序池是64位的,而你提供连接Excel的provider不支持当前64版本的操作系统
    解决方案:
    方案1:
    安装MS的数据连接组件AccessDatabaseEngine(或安装office 2007客户端),并将当前承载通过oledb提供程序去访问Excel2007的Web application对应的应用程序池“启用兼容32位应用程序”,
    在对应的 IIS 应用程序池中,“设置应用程序池默认属性”右击/“高级设置”/"启用32位应用程序",设置为 true。
    方案2:
    安装AccessDatabaseEngine_64版并且要安装64位版的office 2010客户端
    方案3:
    若目标应用程序不能将应用程序池"启用兼容32位应用程序",只能在64位应用程序池下运行,且又想有上传Excel的功能,可按如下方式:
    a、创建Asp.net WebService application 程序,并通过WebService来连接访问Excel。
    b、将此webservice application的应用程序池按方案1方式设置“启用兼容32位应用程序”。
    c、在目标应用程序中添加此webservice。

  • 2018/6/5 10:12:00 [ 0 ] [ 0 ] 回复
  • 追龙
  • 我连接Excel的字符串是这样写的:

    If strExtensionFile = ".xls" Then
       strConnection = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2""", strPathFile)
    ElseIf strExtensionFile = ".xlsx" Then
       strConnection = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0""", strPathFile)
    End Iff

  • 2018/6/5 10:02:00 [ 0 ] [ 0 ] 回复