excel导入mssql数据库,支持excel2003--2010文

系统 1302 0

rt,简单的excel导入mssql。未做性能及海量数据优化,一般单表5000左右条数据导入适用。

源码非原创,来源于之前搜集整理,原作者无从考究,如有版权问题请留言注明。

看代码。前台页面是一个FileUpload和button

      
        protected
      
      
        void
      
       Button1_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
      
      
        "
      
      
        )

        {

            
      
      
        if
      
       (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);           
      
        //
      
      
        调用自定义方法
      
      

        DataRow[] dr = ds.Tables[
      
        0
      
      ].Select();            
      
        //
      
      
        定义一个DataRow数组
      
      
        int
      
       rowsnum = ds.Tables[
      
        0
      
      
        ].Rows.Count;

        
      
      
        if
      
       (rowsnum == 
      
        0
      
      
        )

        {

            Response.Write(
      
      
        "
      
      
        <script>alert('Excel表为空表,无数据!')</script>
      
      
        "
      
      );   
      
        //
      
      
        当Excel表为空时,对用户进行提示
      
      
                }

        
      
      
        else
      
      
        

        {

            
      
      
        for
      
       (
      
        int
      
       i = 
      
        0
      
      ; i < dr.Length; i++
      
        )

            {

                
      
      
        //
      
      
        前面除了你需要在建立一个“upfiles”的文件夹外,其他的都不用管了,你只需要通过下面的方式获取Excel的值,然后再将这些值用你的方式去插入到数据库里面

                
      
      
        //
      
      
        string title = dr[i]["产品名称"].ToString();

                
      
      
        //
      
      
        string linkurl = dr[i]["产品高度"].ToString();

                
      
      
        //
      
      
        string categoryname = dr[i]["产品宽度"].ToString();
      
      
        if
      
       (i==
      
        1
      
      
        )

                {

                    Response.Write(
      
      
        "
      
      
        <script>alert('!');</script>
      
      
        "
      
      
        );

                }

                
      
      
        string
      
       sql = 
      
        "
      
      
        INSERT INTO [Products]([Pname],[Pheight],[Pweight])VALUES('
      
      
        "
      
       + dr[i][
      
        "
      
      
        产品名称
      
      
        "
      
      ].ToString() + 
      
        "
      
      
        ','
      
      
        "
      
       + dr[i][
      
        "
      
      
        产品宽度
      
      
        "
      
      ].ToString() + 
      
        "
      
      
        ','
      
      
        "
      
       + dr[i][
      
        "
      
      
        产品宽度
      
      
        "
      
      
        ].ToString()

                
      
      +
      
        "
      
      
        ')
      
      
        "
      
      
        ;

                SQLHelper.ExcuteCommand(sql);



                
      
      
        //
      
      
        Response.Write("<script>alert('导入内容:" + ex.Message + "')</script>");
      
      
        

                

            }



            
      
      
        //
      
      
        ```Response.Write("<script>alert('Excle表导入成功!');</script>");
      
      
                }

    }



    
      
      
        #region
      
       连接Excel  读取Excel数据   并返回DataSet数据集合

    
      
        ///
      
      
        <summary>
      
      
        ///
      
      
         连接Excel  读取Excel数据   并返回DataSet数据集合

    
      
      
        ///
      
      
        </summary>
      
      
        ///
      
      
        <param name="filepath">
      
      
        Excel服务器路径
      
      
        </param>
      
      
        ///
      
      
        <param name="tableName">
      
      
        Excel表名称
      
      
        </param>
      
      
        ///
      
      
        <returns></returns>
      
      
        public
      
      
        static
      
       System.Data.DataSet ExcelSqlConnection(
      
        string
      
       filepath, 
      
        string
      
       tableName, 
      
        string
      
      
         IsXls)

    {

        
      
      
        string
      
       strCon = 
      
        ""
      
      
        ;

        
      
      
        if
      
       (IsXls == 
      
        "
      
      
        .xls
      
      
        "
      
      
        )

        {

            strCon 
      
      = 
      
        "
      
      
        Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
      
      
        "
      
       + filepath + 
      
        "
      
      
        ;Extended Properties='Excel 8.0;HDR=YES;IMEX=1'
      
      
        "
      
      
        ;

        }

        
      
      
        else
      
      
        

        {

            strCon 
      
      = 
      
        "
      
      
        Provider=Microsoft.ACE.OLEDB.12.0;Data Source=
      
      
        "
      
       + filepath + 
      
        "
      
      
        ;Extended Properties='Excel 12.0;HDR=YES;IMEX=1'
      
      
        "
      
      
        ;

        }

        OleDbConnection ExcelConn 
      
      = 
      
        new
      
      
         OleDbConnection(strCon);

        
      
      
        try
      
      
        

        {

            
      
      
        string
      
       strCom = 
      
        string
      
      .Format(
      
        "
      
      
        SELECT * FROM [Sheet1$]
      
      
        "
      
      
        );

            ExcelConn.Open();

            OleDbDataAdapter myCommand 
      
      = 
      
        new
      
      
         OleDbDataAdapter(strCom, ExcelConn);

            DataSet ds 
      
      = 
      
        new
      
      
         DataSet();

            myCommand.Fill(ds, 
      
      
        "
      
      
        [
      
      
        "
      
       + tableName + 
      
        "
      
      
        $]
      
      
        "
      
      
        );

            ExcelConn.Close();

            
      
      
        return
      
      
         ds;

        }

        
      
      
        catch
      
      
        

        {

            ExcelConn.Close();

            
      
      
        return
      
      
        null
      
      
        ;

        }

    }

    
      
      
        #endregion
      
    

希望对日常开发中有所帮助。对海量级、多表导入需求的可在此基础上自行修改,欢迎共享这部分的优化代码。

 

excel导入mssql数据库,支持excel2003--2010文件格式


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论