源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#将Excel数据导入到数据库的实现代码

  • 时间:2022-09-04 12:06 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#将Excel数据导入到数据库的实现代码
假如Excel中的数据如下: [img]http://files.jb51.net/file_images/article/201312/20131223153351821.jpg[/img] 数据库建表如下: [img]http://files.jb51.net/file_images/article/201312/20131223153442729.jpg[/img] 其中Id为自增字段: [img]http://files.jb51.net/file_images/article/201312/20131223153530733.jpg[/img] 代码:
[u]复制代码[/u] 代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Data.SqlClient; namespace InExcelOutExcel {     public partial class ExcelToDB : System.Web.UI.Page     {         protected void Page_Load(object sender, EventArgs e)         {             FileSvr fileSvr = new FileSvr();             System.Data.DataTable dt = fileSvr.GetExcelDatatable("C:\\Users\\NewSpring\\Desktop\\Demo\\InExcelOutExcel\\InExcelOutExcel\\excel\\ExcelToDB.xlsx", "mapTable");             fileSvr.InsetData(dt);         }     }     class FileSvr     {         /// <summary>         /// Excel数据导入Datable         /// </summary>         /// <param name="fileUrl"></param>         /// <param name="table"></param>         /// <returns></returns>         public System.Data.DataTable GetExcelDatatable(string fileUrl, string table)         {             //office2007之前 仅支持.xls             //const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";             //支持.xls和.xlsx,即包括office2010等版本的   HDR=Yes代表第一行是标题,不是数据;             const string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";             System.Data.DataTable dt = null;             //建立连接             OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));             try             {                 //打开连接                 if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)                 {                     conn.Open();                 }                 System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);                 //获取Excel的第一个Sheet名称                 string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();                 //查询sheet中的数据                 string strSql = "select * from [" + sheetName + "]";                 OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);                 DataSet ds = new DataSet();                 da.Fill(ds, table);                 dt = ds.Tables[0];                 return dt;             }             catch (Exception exc)             {                 throw exc;             }             finally             {                 conn.Close();                 conn.Dispose();             }         }         /// <summary>         /// 从System.Data.DataTable导入数据到数据库         /// </summary>         /// <param name="dt"></param>         /// <returns></returns>         public int InsetData(System.Data.DataTable dt)         {             int i = 0;             string lng = "";             string lat = "";             string offsetLNG = "";             string offsetLAT = "";             foreach (DataRow dr in dt.Rows)             {                 lng = dr["LNG"].ToString().Trim();                 lat = dr["LAT"].ToString().Trim();                 offsetLNG = dr["OFFSET_LNG"].ToString().Trim();                 offsetLAT = dr["OFFSET_LAT"].ToString().Trim();                 //sw = string.IsNullOrEmpty(sw) ? "null" : sw;                 //kr = string.IsNullOrEmpty(kr) ? "null" : kr;                 string strSql = string.Format("Insert into DBToExcel (LNG,LAT,OFFSET_LNG,OFFSET_LAT) Values ('{0}','{1}',{2},{3})", lng, lat, offsetLNG, offsetLAT);                 string strConnection = ConfigurationManager.ConnectionStrings["ConnectionStr"].ToString();                 SqlConnection sqlConnection = new SqlConnection(strConnection);                 try                 {                     // SqlConnection sqlConnection = new SqlConnection(strConnection);                     sqlConnection.Open();                     SqlCommand sqlCmd = new SqlCommand();                     sqlCmd.CommandText = strSql;                     sqlCmd.Connection = sqlConnection;                     SqlDataReader sqlDataReader = sqlCmd.ExecuteReader();                     i++;                     sqlDataReader.Close();                 }                 catch (Exception ex)                 {                     throw ex;                 }                 finally                 {                     sqlConnection.Close();                 }                 //if (opdb.ExcSQL(strSql))                 //    i++;             }             return i;         }     } }
运行结果: [img]http://files.jb51.net/file_images/article/201312/20131223153645500.jpg[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部