ASP.NET(VB)加载Excel至GridView报错,求技术解决方案
Excel文件加载GridView报错解决方法
问题原因
你遇到的是Microsoft.ACE.OLEDB.12.0驱动未在本地注册的问题,本质是运行环境缺少Excel读取所需的驱动,或者驱动位数与项目运行位数不匹配。
解决办法
安装对应位数的ACE驱动
前往微软官网下载Microsoft Access Database Engine 2010 Redistributable:- 若系统装了32位Office,只能装32位驱动;
- 若系统是64位且未装32位Office,可装64位驱动。
统一项目运行位数
在Visual Studio中操作:右键项目 → 属性 → 生成 → 平台目标,选择和驱动一致的位数(x86对应32位,x64对应64位),不要用Any CPU。升级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
相关产品推荐
相关产品推荐

