外部表不是预期的格式-excel
在操作excel将数据从外部导入到数据库时,
刚开始操作的没有问题的,却报出了:“外部表不是预期的格式”错误信息。
仔细查看excel没有问题,
查阅资料,发现有人说:
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();
}
解决方法: 用记事本打开你的excel文件,看看显示是否为乱码。 若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示“外部表不是预期的格式”的错误; 若是乱码,我这边测试是不会提示这个错误的,可以成功导入。
其实出现这个错误的原因是,你的Excel是从程序中导出的,并且是使用 Response的方式直接把html代码输出到Excel中的 其实是可以解决的,导出的时候使用Excel操作Api来导出就是标准格式 ----------------------------------------------------------------------------------------------------- 遇到了这个问题,Response输出的EXCEL文件修改后上传更新时出错, “外部表不是预期的格式” 解决方式: 1.用EXCEL另存为功能另存成标准格式XLS格式(Response导出的其实是网页文件)

浙公网安备 33010602011771号