欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 网站制作教程 >

asp.net Excel导入到数据库方法

发表于2014-05-14 16:13| 次阅读| 来源胡萝卜| 作者管理员

摘要:Excel导入到数据库其实很简单,思路就是读取excel表的数据,存放到DataSet中,然后验证DataSet中的数据,再将DataSet中的数据添加到数据库中即可

导入数据到数据库中会存在一个路劲问题,这里我来给大家看看我的思路

在向数据库导入数据的时候,在服务器端根据时间,先新建一个目录,然后将要导入的Excel文件复制到

刚建的目录下,这样服务器端在从Excel中读取数据的时候就不会出现路径的问题了,最后读取完Excel后,删除新建的

目录即可。

1.上传到服务器

protected void ExcelImport_Click(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        Regex regex = new Regex(".+//.xls$");
        //客户端导入Excel的路径
        string filepath = FileUpload1.PostedFile.FileName;
        //找到服务器端的目录结构
        string NewPath = Server.MapPath("~/File/");
        if (filepath != "")
        {
            if (regex.Match(filepath).Success)
            {
                DateTime dt = DateTime.Now;
                ConvertNum CN = new ConvertNum();
          //根据时间创建目录名称
           string fileName = dt.Year.ToString() + CN.ConvertOneToTwo(dt.Month.ToString()) + CN.ConvertOneToTwo(dt.Day.ToString()) + CN.ConvertOneToTwo(dt.Hour.ToString()) + CN.ConvertOneToTwo(dt.Minute.ToString()) + CN.ConvertOneToTwo(dt.Second.ToString());
                NewPath = NewPath + fileName + Path.DirectorySeparatorChar;
                NewPath = NewPath.Replace("//", "////");
                if (!Directory.Exists(NewPath))
                {
                    //创建目录结构
                    Directory.CreateDirectory(NewPath);
                }
                //将文件保存到新建的目录结构下面
         FileUpload1.SaveAs(NewPath + "UserInfo.xls");
     //读取Excel数据到DataSet集合中
     ds = ExcelToDS(NewPath + "UserInfo.xls", NewPath);
            }
            else
            {
                Response.Write("<mce:script type="text/javascript"><!--
alert('您选择的不是Excel文件,请重新选择!');window.location.href='ZhxxExcelImport.aspx';
// --></mce:script>");
            }
        }
        else
        {
            Response.Write("<mce:script type="text/javascript"><!--
alert('您还没有选择Excel文件,请选择!');window.location.href='ZhxxExcelImport.aspx';
// --></mce:script>");
        }
    }
取得Excel的数据存到DataSet集合中的方法:

public DataSet ExcelToDS(string path,string PathFather)
    {
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="+path+";" + "Extended Properties=Excel 8.0";
        OleDbConnection conn = new OleDbConnection(strConn);
        string strExcel = "";
        OleDbDataAdapter myCommand = null;
        DataSet ds = null;
        //从Excel的一个工作表中导入数据到数据库中
        strExcel = "select 门牌号,用户名,用户人口数目,用户住房面积,用户取暖面积,用户电话,用户工作单位,用户数据类型 from [Sheet1$]";
        try
        {
            myCommand = new OleDbDataAdapter(strExcel, strConn);
            ds = new DataSet();
            myCommand.Fill(ds, "table1");
        }
        catch (Exception e)
        {
            conn.Close();
            myCommand.Dispose();
        }
        finally
        {
            //最后将新建的目录结构删除掉
            if (Directory.Exists(PathFather))
            {
                Directory.Delete(PathFather, true);
            }
        }
        return ds;
    }
这样就完成了,如果大家在使用中遇到一些什么问题,可以直接留言给我,我会马上和你探讨