EXCEL文件保存至数据库


aspx:
<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:HyperLink ID="HyperLink1"  NavigateUrl="~/aspx/xls/zs.xls" runat="server" Text="下载模板"></asp:HyperLink>

<asp:Button runat="server" ID="Button1" OnClick="Button1_Click" Text="查看" Width="60px" />
<asp:Button runat="server" ID="Button2" OnClick="Button2_Click" Text="导入" Width="60px" Enabled="false" />

<asp:GridView ID="gridview1" runat="server" Visible="true">
</asp:GridView>

<asp:Label ID="lblmes" runat="server" Visible="true" /> //用于显示数据记录
</form>

cs:
/*********************************添加命名空间**************************************/
using System.Data;
using System.SqlClient;
using SYstem.OleDb;
/**********************************************************************************/
protected void Button1_Click(object sender, EventArgs e)
{

if (!FileUpload1.HasFile || FileUpload1.FileName.Substring(FileUpload1.FileName.LastIndexOf('.') + 1) != "xls" )
//判断FileUpload是否上传文件,文件名是否是.xls[excel2003]
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('对不起,数据为空或导入的不是Excel文件。');</script>");
return;
}
else
{
FileUpload1.PostedFile.SaveAs("D://test//aspx//xls//" + "//" + FileUpload1.FileName);
//设置上传的文件保存在服务器上的路径[必须存在] 
DataSet ds = new DataSet();
string ConnStr = "Provider=Microsoft.Jet.OleDb.4.0;data source=" + "D://test//aspx//xls//" + FileUpload1.FileName + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
//连接Excel的字符串
string query = "SELECT * FROM [Sheet1$]";      //Excel中的表名称
OleDbCommand oleCommand = new OleDbCommand(query, new OleDbConnection(ConnStr));
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
oleAdapter.Fill(ds, "[Sheet1$]");
int rowcount = ds.Tables[0].Rows.Count;  //获取记录数
gridview1.DataSource = ds;
gridview1.DataBind();
lblmes.Text = rowcount.ToString();  
}
if (lblmes.Text != "")
{
Button2.Enabled = true;
}
//若不点查看按钮,直接点击导入按钮将出错,因为此时gridview中尚无数据,所以在此做一判断。
}

protected void  Button2_Click(object sender, EventArgs e)
{
string strConnection = ConfigurationManager.ConnectionStrings["tsglConnectionString"].ConnectionString;
SqlConnection con=new SqlConnection(strConnection );
con.Open(); 
//连接数据库,并打开数据库
if (Convert.ToInt32(lblmes.Text) > 0)

{                  
foreach (GridViewRow row in this.gridview1.Rows)
{

string zsbh = row.Cells[0].Text.ToString();
string xm = row.Cells[1].Text.ToString();
DateTime kssj =DateTime.Parse(row.Cells[2].Text);
string sfcx = row.Cells[3].Text.ToString();
string zslx = row.Cells[4].Text.ToString();
string strSQL = "insert into zs(zsbh,xm,kssj,sfcx,zslx) values('" + zsbh + "','" + xm + "','" + kssj + "','" + sfcx + "','" + zslx + "')";
//数据库中必须存在该表zs
SqlCommand com = new SqlCommand(strSQL, con);
com.ExecuteNonQuery();
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('导入成功!');</script>");
}

}                 
}
if (lblmes.Text != "" || Convert.ToInt32(lblmes.Text) != 0)
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('数据不能为空!');</script>");
}
con.Close();
}

原理:

1.将EXCEL文件通过FileUpdate上传保存到服务器
2.读取该文件到gridview中
3.插入数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值