C# 导入EXCEL 报错外部表不是预期的格式错误

excel

1个回答

写回答

excel
excel

在asp.net网站中导出excel文件后,再把文件导入到数据库中。 读取excel文件时,打开连接出错。错误为:外部表不是预期的格式解决:检查了一下,导出的excel是标准文件不是html,没错,excel文件正常。 调试代码,创建连接对象oleDbConnection也正常,但在conn.Open()打开链接时出错。 仔细看了下链接字符串,检查出了错误,excel版本问题,Exce连接字符串版本是office2003的 ,更改为excel2007版本则正常导入。 using System.Data.OleDb; using System.Data; public void ReadexcelFiless() { //string strConn = Provider=Microsoft.Jet.OleDb.4.0; + data source= + Server.MapPath(excelFiles/MyexcelFile.xls) + ;Extended Properties='excel 8.0; HDR=Yes; IMEX=1'; //此连接只能操作excel2007之前(.xls)文件 string strConn =Provider=Microsoft.Ace.OleDb.12.0; + data source= + Server.MapPath(excelFiles/Mydata2007.xlsx) + ;Extended Properties='excel 12.0; HDR=Yes; IMEX=1'; //此连接可以操作.xls与.xlsx文件 (支持excel2003 和 excel2007 的连接字符串) //备注: HDR=yes;是说excel文件的第一行是列名而不是数据,HDR=No;正好与前面的相反。// IMEX=1 如果列中的数据类型不一致,使用IMEX=1可必免数据类型冲突。 OleDbConnection conn= new OleDbConnection(strConn); OleDbDataAdapter adp = new OleDbDataAdapter(Select * from [Sheet1$], conn); DataSet ds = new DataSet(); adp.Fill(ds, Book1);this.GridView1.DataSource = ds.Tables[Book1].DefaultView; this.GridView1.DataBind(); }

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号