错误为:外部表不是预期的格式
解决:检查了一下,导出的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,如下图。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)