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

ASP.NET(VB)加载Excel至GridView报错,求技术解决方案

Excel文件加载GridView报错解决方法

问题原因

你遇到的是Microsoft.ACE.OLEDB.12.0驱动未在本地注册的问题,本质是运行环境缺少Excel读取所需的驱动,或者驱动位数与项目运行位数不匹配。

解决办法

  1. 安装对应位数的ACE驱动
    前往微软官网下载Microsoft Access Database Engine 2010 Redistributable:

    • 若系统装了32位Office,只能装32位驱动;
    • 若系统是64位且未装32位Office,可装64位驱动。
  2. 统一项目运行位数
    在Visual Studio中操作:右键项目 → 属性 → 生成 → 平台目标,选择和驱动一致的位数(x86对应32位,x64对应64位),不要用Any CPU。

  3. 升级ExcelDataReader(无需额外装驱动)
    把ExcelDataReader包升级到最新版,同时安装ExcelDataReader.DataSet依赖包,然后修改代码:

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles ASPxButton1.Click
        If ASPxUploadControl1.UploadedFiles.Count > 0 Then
            Dim file As UploadedFile = ASPxUploadControl1.UploadedFiles(0)
            Dim dt As New DataTable()
    
            Using stream As Stream = file.FileContent
                ' 配置读取规则,跳过ACE驱动依赖
                Dim readConf As New ExcelDataSetConfiguration() With {
                    .ConfigureDataTable = Function(tableReader) New ExcelDataTableConfiguration() With {
                        .UseHeaderRow = True ' 用第一行作为表头
                    }
                }
                Using reader As IExcelDataReader = ExcelReaderFactory.CreateReader(stream)
                    Dim ds As DataSet = reader.AsDataSet(readConf)
                    dt = ds.Tables(0)
                End Using
            End Using
    
            GridView1.DataSource = dt
            GridView1.DataBind()
        End If
    End Sub
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:33:29