您的位置:首页 > 数据库

C# Excel导入数据到数据库

2014-03-18 19:05 423 查看
//项目中用到的一个小例子,拿出来和大家分享 ,需要引用

using System.IO;

using System.Data.OleDb;

/// <summary>

/// Excel数据导入Datable

/// </summary>

/// <param name="fileUrl"></param>

/// <param name="table"></param>

/// <returns></returns>

public 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.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.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 + "A:H]";

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 bool InsetData(System.Data.DataTable dt)

{

bool flag = false; string qq = "";

foreach (DataRow dr in dt.Rows)

{

sTalent.ID = Guid.NewGuid().ToString();

sTalent.NAME = dr["姓名"].ToString().Trim();

sTalent.WORKFIELD = dr["工作领域"].ToString().Trim();

sTalent.TYPE = dr["类型"].ToString().Trim();

sTalent.TEL = dr["电话"].ToString().Trim();

qq = dr["QQ"].ToString().Trim();

sTalent.EMAIL = dr["Email"].ToString().Trim();

sTalent.ADDRESS = dr["住址"].ToString().Trim();

sTalent.INFO = dr["人才简介"].ToString().Trim();

sTalent.CREATEDATE = DateTime.Now;

sTalent.Batch.Add(sTalent.GetInsertCommand());

}

try

{

flag = sTalent.DataManager.Execute(sTalent.Batch.GetBatch());

}

catch (Exception ex)

{

}

return flag;

}

DataTable dt = GetExcelDatatable(path, "人才信息");

bool flag = InsetData(dt);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐