您的位置:首页 > 编程语言 > ASP

asp.net Excel数据导入到数据库中

2013-07-10 11:02 411 查看
protected void Btn_Import_Click(object sender, EventArgs e)
{
bool Result_Import = false;
bool Result = false;
Guid RanageID = Guid.NewGuid();
string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();
if (FileUpload1.HasFile == false)
{
Function.AlertMsg("请您先选择后缀名为.xls或.xlsx的Excel文件", "SetForm.aspx?eid=" + EmployeeID);
}
else if (IsXls != ".xls" && IsXls != ".xlsx")
{
Function.AlertMsg("请选择后缀名为.xls或.xlsx的Excel文件", "SetForm.aspx?eid=" + EmployeeID);
}
else
{
string NewFileName = DateTime.Now.ToString("yyyyMMddhhmmss") + new Random().Next(99, 9999) + IsXls;//新文件名
string NewPath = Server.MapPath("../attachment/Excel/") + NewFileName;//服务器保存路径
FileUpload1.SaveAs(NewPath);
DataSet Ds = ExcelDs(NewPath, NewFileName);
DataRow[] Dr = Ds.Tables[0].Select();
int RowsNum = Ds.Tables[0].Rows.Count;
if (RowsNum.Equals(0))
{
Function.AlertMsg("该考核表为空表,请重新上传!", "SetForm.aspx?eid=" + EmployeeID);
}
else
{
string RanageIDs = "";

#region
for (int i = 0; i < Dr.Length; i++)//遍历Excel中的考核范围并添加到数据库
{
string Ranage = Dr[i]["范围"].ToString();
string Weight = Dr[i]["权重"].ToString();
string Target = Dr[i]["考核指标"].ToString();
string Standard = Dr[i]["考核标准"].ToString();
string Remark = Dr[i]["描述"].ToString();

if (Ranage != "" && Weight != "")
{
RanageID = Guid.NewGuid();
opa_appraiseranage.ID = RanageID;
opa_appraiseranage.Ranage = Ranage;
opa_appraiseranage.Weight = int.Parse(Weight);
opa_appraiseranage.IsImport = true;
Result = OPA_AppraiseRanage.InsertRanageByEID(opa_appraiseranage);
if (Result)
{
RanageIDs = RanageIDs + "'" + RanageID + "',";
Result_Import = true;
}
else
{
Result_Import = false;
break;
}
}
if (Target != "")
{
opa_appraisetarget.RanageID = RanageID;
opa_appraisetarget.Target = Target;
opa_appraisetarget.Standard = Standard;
opa_appraisetarget.Remark = Remark;
opa_appraisetarget.IsImport = true;
bool resultTarget = OPA_AppraiseTarget.InsertTargetByEID(opa_appraisetarget);
if (resultTarget)
{
Result_Import = true;
}
else
{
Result_Import = false;
break;
}
}
}//考核表录入循环完毕
#endregion

#region
if (Result_Import)//表格导入成功,则删除该员工原有的考核表信息
{
bool R = OPA_AppraiseRanage.DeleteBeforeRanageTargetAndUpdateIsImportByEID(opa_appraiseranage);
if (R)
{
Function.AlertMsg("考核表信息导入成功!", "PreviewAppraiseForm.aspx?eid=" + EmployeeID);
File.Delete(NewPath);//删除上传的考核表Excel文件
}
else
{
RanageIDs = RanageIDs.Substring(0, RanageIDs.Length - 1);
opa_appraiseranage.IDs = RanageIDs;
bool Result_D = OPA_AppraiseRanage.DeleteImportRanageTargetByRIDs(opa_appraiseranage);//根据考核范围ID和状态IsImport=1删除刚才导入的考核范围指标信息
if (Result_D)
{
Function.AlertMsg("考核表信息录入失败,数据已成功回滚,请检查数据后尝试重新录入!", "SetForm.aspx?eid=" + EmployeeID);
}
else
{

Function.AlertMsg("考核表信息录入失败,数据回滚失败,请联系管理员!", "SetForm.aspx?eid=" + EmployeeID);
}
}

}
#endregion
}
}
}


public DataSet ExcelDs(string FilenamePath, string Table)
{
string strConn = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ='" + FilenamePath + "';Extended Properties='Excel 8.0'";
OleDbConnection Odbconn = new OleDbConnection(strConn);
OleDbDataAdapter Odda = new OleDbDataAdapter("select * from [Sheet1$]", Odbconn);
DataSet Ds = new DataSet();
Odda.Fill(Ds, Table);
return Ds;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: