zoukankan      html  css  js  c++  java
  • asp.net Excel数据导入到数据库中

     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;
            
        }
    
  • 相关阅读:
    跳出IFrame几种方式
    EChart使用简单介绍
    ckplayer视频播放插件使用
    uploadify文件批量上传
    纵表与横表互转实例(转)
    Sublime Text3使用记录
    异步上传,显示进度条
    JS手机浏览器判断(转)
    命令行创建maven模块工程
    eclipse创建maven模块工程
  • 原文地址:https://www.cnblogs.com/dreamzcy/p/3181642.html
Copyright © 2011-2022 走看看