首页 > 代码库 > C# 将Excel里面的数据填充到DataSet中
C# 将Excel里面的数据填充到DataSet中
/// <summary>
/// 将Excel表里的数据填充到DataSet中
/// </summary>
/// <param name="filenameurl">Excel文件的路径(包含文件名)</param>
/// <param name="table">Excel的文件名</param>
/// <returns></returns>
public static DataSet ExecleDs(string filenameurl, string table)
{
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source=" + filenameurl + ";Extended Properties=‘Excel 12.0; HDR=YES; IMEX=1‘";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
odda.Fill(ds, table);
return ds;
}
//应用示例
/// <summary>
/// 导入Excel信息
/// </summary>
/// <param name="context"></param>
/// <param name="returnMsg"></param>
/// <returns></returns>
public bool ImportInfo(HttpContext context, ref string returnMsg)
{
bool isError = true;
try
{
string FilePath = HttpContext.Current.Request.Files["file1"].FileName; //获取上传的文件名
if (FilePath != "")
{
string IsXls = System.IO.Path.GetExtension(FilePath).ToString().ToLower();//获取文件的后缀名
if (IsXls == ".xls" || IsXls == ".xlsx") //判断是否是Excel文件
{
string FileRoot = ""; //文件保存路径
string FileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + IsXls;//更改文件名(用当前的时间命名)
HttpContext.Current.Request.Files["file1"].SaveAs(context.Server.MapPath(FileRoot + FileName));//保存上传的文件
DataSet ds = ExecleDs(HttpContext.Current.Server.MapPath(FileRoot + FileName), FileName);//读取excel文件内容 填充到DataSet
DataRow[] dr = ds.Tables[0].Select();//定一个DataRow数组
int rowsNum = ds.Tables[0].Rows.Count; //行总量
if (rowsNum == 0) //判断excel是否为空
{
returnMsg = "Excel表为空表,无数据!";
return false;
}
DataTable dt = ds.Tables[0];
string code = "";
for (int i = 0; i < dr.Length; i++)
{
//数据处理
//if (dr[i].Table.Columns.Contains("行标题") && dr[i]["行标题"] != null)
//{
// if (dr[i]["行标题"].ToString().Trim() == "")
//{
// returnMsg = "第" + (i + 2) + "行的**不能为空,请修改后重新导入!";
//return false;
//}
//code = dr[i]["行标题"].ToString().Trim();
//}
//else
//{
// returnMsg = "缺少**列,请修改后重新导入!";
//return false;
//}
}
return isError;
}
else
{
returnMsg = "只可以选择Excel文件!";
return false;
}
}
else
{
returnMsg = "请选择要导入的Excel文件!";
return false;
}
}
catch(Exception ex)
{
returnMsg = "系统发生未知错误,请联系系统管理员!";
return false;
}
}
C# 将Excel里面的数据填充到DataSet中