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

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

在asp.net网站中导出Excel文件后,棚扮野再把文件导入到数据库中。 读取Excel文件时,打开连接出错。

错误为:外部表不是预期的格式

解决:检查了一下,导出的Excel是标准文件不是html,没错,Excel文件正常。

调试代码,创建连接对象oleDbConnection也正常,但在conn.Open()打开链链喊接时出错。

仔细看了下链接字符串,检查出了错误,Excel版本问题,Exce连接字符串版本是office2003的 ,更改为Excel2007版本则正常导入。

using System.Data.OleDbusing System.Datapublic void ReadExcelFiless() { //string strConn = "Provider=Microsoft.Jet.OleDb.4.0" + "data source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + "Extended Properties='Excel 8.0HDR=YesIMEX=1'"//此连接只能 *** 缺桥作Excel2007之前(.xls)文件 string strConn ="Provider=Microsoft.Ace.OleDb.12.0" + "data source=" + Server.MapPath("ExcelFiles/Mydata2007.xlsx") + "Extended Properties='Excel 12.0HDR=YesIMEX=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"].DefaultViewthis.GridView1.DataBind()}

尝试下这个裂裂

select * INTO XXXX FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

'Data Source=e:\歼源脊氏渗XXXX.xlsExtended Properties=Excel 8.0')...[sheet1$]

原因:设置错误导致的。解决方法:EXCEL高级设置里面调整来解决此问题。

如下参考:

1.当您打开exlce时,将d出此对话框。

2.右侧显示灰色部分,表示无法打开。

3.单击Excel选项,选明则择advanced,并拖动滑块来查找general。

4.选择general,然后单击ignoreotherapplicationsthatuseDDE。

5.单击右边的附加组件,选择右下角的COM附加组件,然后单击ok。

6.然后单击goto(G)并颤扰单击ok,如下所示。

7.删除foundationadd-in之前的检查,然后单击茄槐旦ok,如下图。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12540050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存