您的位置:首页 > 编程学习 > ASP.NET > 正文

ASP.NET将Excel数据导入到数据库

更多 时间:2016-4-29 类别:编程学习 浏览量:205

ASP.NET将Excel数据导入到数据库

ASP.NET将Excel数据导入到数据库
  •  
  •  
  • C# 代码   复制
  • 
    
            protected void btnImport_Click(object sender, EventArgs e)
            {
                if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
                {
                    Response.Write("<script>alert('请您选择Excel文件')</script> ");
                    return;//当无文件时,返回
                }
                string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
                if (IsXls != ".xls" && IsXls != ".xlsx")
                {
                    Response.Write("<script>alert('只可以选择Excel文件')</script>");
                    return;//当选择的不是Excel文件时,返回
                }
                string filename = FileUpload1.FileName;              //获取Execle文件名  DateTime日期函数
                string savePath = Server.MapPath(("upfiles\\\\") + filename);//Server.MapPath 获得虚拟服务器相对路径
                FileUpload1.SaveAs(savePath);                        //SaveAs 将上传的文件内容保存在服务器上
                DataSet ds = ExcelSqlConnection(savePath, filename, IsXls);           //调用自定义方法
                int rowsnum = ds.Tables[0].Rows.Count;
                if (rowsnum == 0)
                {
                    Response.Write("<script>alert('Excel表为空表,无数据!')</script>");   //当Excel表为空时,对用户进行提示
                }
                else
                {
                    //前面除了你需要在建立一个“upfiles”的文件夹外,其他的都不用管了,你只需要通过下面的方式获取Excel的值,然后再将这些值用你的方式去插入到数据库里面
                    string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
                    using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))
                    {
                        DataTable dt = ds.Tables[0];
                        bcp.BatchSize = 100;//每次传输的行数 
                        bcp.NotifyAfter = 100;//进度提示的行数 
                        bcp.DestinationTableName = tb2.Text;//需要导入的数据库表名
    
                        //excel表头与数据库列对应关系
                        bcp.ColumnMappings.Add("物料编码", "CODE");
                        bcp.ColumnMappings.Add("物料名称", "NAME");
                        bcp.ColumnMappings.Add("状态", "STATUS");
                        bcp.ColumnMappings.Add("物料说明", "MEMO");
                        bcp.ColumnMappings.Add("创建人帐号", "CREATOR");
                        bcp.ColumnMappings.Add("创建时间", "CREATEDATE");
                        bcp.ColumnMappings.Add("计量单位", "Unit");
                        bcp.WriteToServer(dt);
                    }
                    Response.Write("<script>alert('Excle表导入成功!');</script>");
                }
    
            }
    
            连接Excel  读取Excel数据   并返回DataSet数据集合
    
    		
  •  

    标签:ASP.NET