Excel表格导入SqlServer2005数据库

时间:2021-10-16 06:39:02

I)思路:

          A:先将Excel表格导入到DataSet集合中

          B:再将DataSet集合中的数据导入到数据库中

II)简单页面显示:

 

                                   Excel表格导入SqlServer2005数据库

III)具体的代码实现:

 

1、当点击导入按钮时执行的代码:

 

  protected void Import_Click(object sender, EventArgs e)
    {
        //进行简单的格式判断
        Regex regex = new Regex(".+//.xls$");
        string filepath = FileUpload1.PostedFile.FileName;
        if (filepath != "")
        {
            if (regex.Match(filepath).Success)
            {
                string newFilePath = filepath.Replace("//", "////");
                DataSet ds = ExcelToDS(newFilePath);
                //通过exceptionFlag标志判断要导入的Excel文件的格式是否正确
                if (exceptionFlag != 1)
                {
                   DSToExcel(newFilePath, ds);
                }
                else
                {
                    Response.Write("<script>alert('您导入的Excel文件格式不正确,请核查后在导入!');window.location.href='selectCbsjMethod.aspx';</script>");
                }
            }
            else
            {
                Response.Write("<script>alert('您选择的不是Excel文件,请重新选择!');window.location.href='selectCbsjMethod.aspx';</script>");
            }
        }
        else
        {
            Response.Write("<script>alert('您还没有选择Excel文件,请选择!');window.location.href='selectCbsjMethod.aspx';</script>");
        }
    }

 

 

2、将Excel表中的信息导入到DataSet集合中:

 

/// <summary>
    /// 将Excel表中的数据导入的DataSet集合中
    /// </summary>
    /// <param name="path"></param>
    /// <returns></returns>
    public DataSet ExcelToDS(string path)
    {
       
        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, "table2");
        }
        catch (Exception e)
        {
            exceptionFlag = 1;
        }
        finally
        {
            conn.Close();
        }
        return ds;
    }

3、将DataSet集合中的数据导入到数据库中:

 

/// <summary>
    /// 将DataSet集合中的数据导入的数据库中
    /// </summary>
    /// <param name="path"></param>
    /// <param name="oldds"></param>
    public void DSToExcel(string path, DataSet oldds)
    {

          //先用正则表达式对导入到DataSet集合中的数据进行验证,看格式是否正确。

          //若格式有错误,则提示用户进行修改,修改后再导入。

          //只有格式都正确后,才将DataSet集合中的数据全部导入到数据库中。

          //若有一条记录的验证没有通过,则其余合法的记录也没法导入数据库中。

     }

IV)参考资料:

 

http://topic.csdn.net/u/20080712/16/809df02e-ece8-4481-b83b-6f7aca95a7a0.html