最近转的asp.net,做了一个多星期,然后现在做一个项目,有个功能是导出数据到excel,这个完成了,然后下一个功能是用户修改那份导出的excel,然后再重新读取excel数据并显示出来。
网上找了些资料,基本都大同小异,然后我的代码如下
public void ExcelDataSource(string filepath, string sheetname)
{
Response.Write(filepath);//filepath的路径就是下面这个
//D:\IIS_PartyMemMsg\upload\茂名移动党员信息.xls
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filepath + ";" + "Extended Properties='Excel 12.0; HDR=No; IMEX=1";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
adp.Fill(ds);
conn.Close();
GridView1.DataSource = ds;
GridView1.DataBind();
}
然后就蛋疼了,一直出现
System.Data.OleDb.OleDbException: 外部表不是预期的格式。
这个错误。
应该可以肯定不是excel表的数据有问题,因为我都是直接读取我导出去的数据,代码方面基本上和网上的都差不多,所以求大神出现吧,搞了1天多了,一直没有搞定
尝试下 加个 Response.End();
测试分两部分 ,第一个是生成文件有没有问题,第二是读取文件有没有问题。单独分开测试
是的,今天早上发现是导出去的时候创建的excel文件有问题
右键 生成的文件 记事本打开 如果是乱码 则是正确格式 or 不是正确的EXCEL格式.
那你需要另存为excel格式 再次导入.
是的,今天早上发现是导出去的时候创建的excel文件有问题
最后经过测试,发现是导出的时候有问题,格式不正确。
这个导入的代码是正确的。
问题解决了