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);
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);
相关文章推荐
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)
- c#将Excel数据导入到数据库的实现代码
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)
- c#将Excel数据导入到数据库的实现代码
- C#将EXCEL数据导入到数据库示例
- C# Excel导入数据到数据库
- 黑马程序员—c#将excel数据导入到数据库
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转
- c#将Excel数据导入到数据库的实现代码
- C#将Excel数据导入数据库(MySQL或Sql Server)
- [置顶] 关于C++、C#实现EXCEL数据库批量导入数据库万行以上数据效率问题
- c#将Excel数据导入到数据库的实现代码
- 点滴积累【C#】---将Excel数据导入到数据库
- 黑马程序员之C#学习笔记:将EXCEL表中的数据导入到后台数据库
- c#将Excel数据导入到数据库的实现代码(OleDb)
- C#数据库数据导入导出系列之四 WinForm数据库导入导出到Excel
- c#将Excel数据导入到数据库的实现代码(转载)
- C# 将Excel数据导入到数据库(实现SQL2000企业管理器导入EXCEL功能)
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)