|
我用的是C#.net做Web开发。导入Excel中的数据是这样写的:
private DataTable ExcelToDataTable(string filePath)
{
string ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ filePath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
OleDbConnection oleCon = new OleDbConnection(ConnStr);
oleCon.Open();
string sql = "select * from [Sheet1$]";
DataSet ds = new DataSet();
OleDbDataAdapter oleAdper = new OleDbDataAdapter(sql, oleCon);
oleAdper.Fill(ds, "test");
oleCon.Close();
return ds.Tables[0];
}
导出的时候是这样写的:
protected void btnDaochu_Click(object sender, EventArgs e)
{
GridView1.Columns[0].Visible = false;
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/ms-excel";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
问题就是:如果我自己新建立一个Excel。然后把数据贴到里面。不管在外面这个excel是否为打开状态,数据都能导入进去
可当我把程序中的数据导出后,想把这个excel中的数据再导入进系统。就出错了。每次在执行oleCon.Open();的
时候就有问题了,如果把那个excel在外面提前打开,再导入,就又能成功。所以不知道是什么原因。如果有知道
的话就帮我看看,或者有其他的办法也可以。谢谢了! |
|