Insert dữ liệu từ file excel vào database sử dụng ASP.NET

Sau đây mình xin hướng dẫn cách upload một file excel với các cột được định sẵn lên web và sau đó insert dữ liệu của file excel vào table của database

Trước tiên các bạn phải using một số thư viện sau:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Data.OracleClient;
 
Trong bài viết này mình sử dụng database là oracle, còn nếu các bạn sử dụng là MS SQL thì các bạn sử dụng using System.Data.SqlClient;
 
Trang aspx
 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>IP</title>
</head>
<body>
   <form id="form1" runat="server">
    <div>
        <div>
            <asp:FileUpload ID="FileUpload1" runat="server" />
            <asp:Button ID="btnexcelToDB" runat="server" OnClick="btnexcelToDB_Click" Text="Import Excel" />
        </div>        
    </div>
    </form>
</body>
</html>
 
Code Behind
 
void SaveData()
{
string Filename = FileUpload1.FileName;
Filename = Filename.Replace(Filename, "tonghop.xls");
FileUpload1.PostedFile.SaveAs(Server.MapPath("~\\reports\\" + Filename));
string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E://WEBSYSTEM//wwwroot//Search//reports//tonghop.xls;Extended Properties=""Excel 8.0;HDR=YES;"""; //khai báo đường dẫn đến thư mục chứa file excel
OleDbConnection connExcel = new OleDbConnection(excelConnectionString); //khai báo chuỗi kết nối excel
OleDbCommand cmd = new OleDbCommand("Select [Prod_ID],[Names],[IP],[Name_Com],[MAC] From [IP XUONG$]", connExcel);
connExcel.Open();
OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string prodid = dr["Prod_ID"].ToString().Trim();
string names = dr["Names"].ToString().Trim();
string ip = dr["IP"].ToString().Trim();
string namecom = dr["Name_Com"].ToString().Trim();
string mac = dr["MAC"].ToString().Trim();
OracleCommand cmdimport = new OracleCommand("INSERT_IP_FAC", oraclconn);
cmdimport.CommandType = CommandType.StoredProcedure;
OracleParameter VNAME = new OracleParameter("VNAME", OracleType.VarChar, 50);
VNAME.Value = names;
cmdimport.Parameters.Add(VNAME);
OracleParameter VIP_ADDRESS = new OracleParameter("VIP_ADDRESS", OracleType.VarChar, 15);
VIP_ADDRESS.Value = ip;
cmdimport.Parameters.Add(VIP_ADDRESS);
OracleParameter VNAME_COM = new OracleParameter("VNAME_COM", OracleType.VarChar, 30);
VNAME_COM.Value = namecom;
cmdimport.Parameters.Add(VNAME_COM);
OracleParameter VMAC = new OracleParameter("VMAC", OracleType.VarChar, 30);
VMAC.Value = mac;
cmdimport.Parameters.Add(VMAC);
OracleParameter VPROP = new OracleParameter("VPROP", OracleType.VarChar, 20);
VPROP.Value = prodid;
cmdimport.Parameters.Add(VPROP);
int row = cmdimport.ExecuteNonQuery();
}
connExcel.Close();
}
 
Nút upload ta gọi hàm SaveData()
 
protected void btnexcelToDB_Click(object sender, EventArgs e)
{
        SaveData();
}
 
Để tránh bị nhầm lẫn các bạn có thể Download file Excel mẫu tại đây
 
Web hosting by Somee.com