如何把Excel数据导入到数据库表中 asp.net

如何把Excel数据导入到数据库表中 asp.net,第1张

ASP.NET中将Excel表中的数据导入到数据库中的方法是利用可视化界面工具直接选择字段映射导入。

1)接受数据导入的表已经存在。

insert into t1 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,

'Excel 5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)

2)导入数据并生成表。

select * into t1 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',

'Excel 5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)

3) 导入Excel中指定的列到数据库表中指定的列。

INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET'MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)

需要注意的地方。

1)外围应用配置器的设置。

从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。

2)关闭Excel表。

如果在导入时要导入的Excel表格处于打开状态,会提示:

“无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。”

3)导入数据时,Excel的首行会作为表头,若导入到已存在的数据库表,则忽略首行。

我只有asp.net的,c#也可以使用,但是没测试过java那些的。将Excel里面的数据导入到数据库中的原理就是将Excel里面的数据存储到一个dataTable中,然后将数据一行一行添加到数据库的表里。给你部分代码,相信你能够如此好学,应该能看懂,有些变量你自己研究是什么,不然全部给你打出来了,你就只会copy了。

SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["aa"].ToString())

            con.Open()//数据库连接字符串

            DataTable dtXls = new DataTable()

            if (this.fudAdd.PostedFile.FileName.ToString().Trim() != "" && this.fudAdd.PostedFile.FileName!=null)

            {

                string filePath = this.fudAdd.PostedFile.FileName.ToString().Trim()

                FileInfo fileTag = new FileInfo(fudAdd.PostedFile.FileName)

                string extendedName = fileTag.Extension

                if (extendedName.ToLower() != ".xls" && extendedName.ToLower() != ".xlsx")

                {

                    Response.Write("<script>alert('请选择一个Excel文件!')</script>")

                    return

                }

                else

                {

                    dtXls = ExcelToDataTable(filePath,extendedName)

                    if (dtXls==null||dtXls.Rows.Count <= 0 || dtXls.Columns[0].ToString() == "")

                    {

                        Response.Write("<script>alert('请你确认上传的Excel中有资料!')</script>")

                        return

                    }

                    else

                    {

                        if (dtXls.Columns[0].ToString() != "手机号码" || dtXls.Columns[1].ToString() != "状态")

                        {

                            Response.Write("<script>alert('请确定Excel资料的格式为[手机号码][状态]!')</script>")

                            return

                        }

                        else

                        {

                            if (dtXls.Rows[0][0].ToString() == "")

                            {

                                Response.Write("<script>alert('请确定Excel资料的格式为[手机号码][状态]!')</script>")

                                return

                            }

                            else

                            {

                                string result = AddXlsData(dtXls, con)

                                string[] resultData = result.Split('-')

                                string msg = "资料上传成功!共计" + resultData[0] + "条成功," + resultData[1] + "条失败!"

                                Response.Write("<script>alert('" + msg + "')</script>")

                                logwrite.LogOpera(userid, "UnExistMobile_Mag.aspx", "UnExistMobile_Mag.aspx.cs", "成功上传一批空号")//记录log

                                BindData()

                                return

                            }

                        }

                    }

                }

                con.Close()

//

#region ExcelToDataTable

    /// <summary>

    /// 读取xls文件

  /// Add by

    /// </summary>

    /// <param name="fileName"></param>

    /// <returns></returns>

    protected DataTable ExcelToDataTable(string fileName, string extendedName)

    {

        string strConn = string.Empty

        if (extendedName.ToLower() == ".xls")

        {

            strConn = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" + fileName + "Extended Properties='Excel 8.0HDR=YesIMEX=1'"

        }

        if (extendedName.ToLower() == ".xlsx")

        {

            strConn = "Provider=Microsoft.ACE.OLEDB.12.0Data Source=" + fileName + "Extended Properties='Excel 12.0HDR=YES'"

        }

        OleDbConnection conn = new OleDbConnection(strConn)

        conn.Open()

        System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null)

        string tableName = schemaTable.Rows[0][2].ToString().Trim()

        string strExcel = ""

        OleDbDataAdapter myCommand = null

        DataSet ds = null

        strExcel = "Select   *   From   [" + tableName + "]"

        myCommand = new OleDbDataAdapter(strExcel, strConn)

        ds = new DataSet()

        myCommand.Fill(ds, tableName)

        if (ds != null)

        {

            System.Data.DataTable dt = ds.Tables[0]

            return dt

        }

        else

        {

            return null

        }

        conn.Close()

        ds.Dispose()

    }

    #endregion


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10648390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存