标签:
准备工作:
1)先用准备一个Excel文件,这个Excel文件可以是空的,或是有一定格式的当做数据模板使用。
2)将操作的目录给ASP.NET用户(ASPNET 或NETWORK SERVICE)写入权限。
以下是示例:
说明一下:如果这个模板文件是个空文件,则需要使用Create Table创建一个工作表,否则只需使用已有的表进操作就可以了。
DataTable dt = new DataTable(); dt.Columns.Add("name"); dt.Columns.Add("age", typeof(int)); dt.Columns.Add("phone"); dt.Rows.Add("老张", 40,"99213812"); dt.Rows.Add("小李", 28,"a21313"); dt.Rows.Add("小王", 22,"2131434"); string FileName = Guid.NewGuid().ToString()+".xls"; string sNewFullFile = Server.MapPath(FileName); try { File.Copy(Server.MapPath("format.xls"), sNewFullFile); } catch (Exception er) { Response.Write(er.Message); return; } string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=True;Data Source=" + sNewFullFile + ";Extended Properties=Excel 8.0;"; System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn); OleDbCommand cmd = null; bool bRet = false; try { conn.Open(); cmd = new OleDbCommand("create table [sheet4]([姓名] Text,[年龄] int,[电话] Text)",conn); cmd.ExecuteNonQuery(); string strSQL = "INSERT INTO [Sheet4$] ([姓名], [年龄],[电话]) VALUES (?, ?, ?)"; cmd = new OleDbCommand(strSQL, conn); for (int i = 0; i < 3; i++) { cmd.Parameters.Add(i.ToString(), OleDbType.VarChar); } DataView dv = dt.DefaultView; foreach (DataRowView row in dv) { cmd.Parameters[0].Value = row["name"].ToString(); cmd.Parameters[1].Value =(int) row["age"]; cmd.Parameters[2].Value = row["phone"].ToString(); cmd.ExecuteNonQuery(); } bRet = true; } catch (Exception er) { Response.Write(er.Message); } finally { if (cmd != null) { cmd.Dispose(); } conn.Dispose(); } if(bRet) Response.Redirect(FileName);
标签:
原文地址:http://www.cnblogs.com/joean/p/4406431.html