zoukankan      html  css  js  c++  java
  • Vs.Net方向将Excel数据导入到数据库

    开发环境:  

    1,用的数据库是Sql Server 2005 你可以自己建立一个数据库 我用的表是yinAddress(最下面有表结构的生成语句)

    2,开发环境是VS.Net2008+C#

    3,使用到第三方的一个组件 名称:C1.C1Excel.2.dll (可以到网上找)也可以在这里  下载 已经压缩

    -----------------------------------------------------------

    下面是代码

    using C1.C1Excel;//必须添加这个引用哦
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            InportExcel();
        }  
        //
    Excel数据导入到数据库
        private void InportDataBase()
        {
            C1XLBook b = new C1XLBook();//第三方的东东(可以拿来学习下)
            string fileName = Server.MapPath(Request.ApplicationPath + "/Book1.xls");//
    获取Excel文件存放的路径
            b.Load(fileName);//将Book1.xls的数据装载到C1XLBook对象里面, 

    然后数据就通过它((b))一条条读取,在进入数据库之前你可以做任何编辑,  然后再保存;  或者  你可以一条条的保存到DataTable里面或者添加到DataSet里面  我这里则是在获取每条数据后直接保存到数据库里了
            if (b.Sheets[0] != null &&b.Sheets[0].Rows.Count > 0)
            {
                for (int i = 0; i < b.Sheets[0].Rows.Count; i++)
                {
                    string sql = " insert into yinAddress(AddressLine1,AddressLine2,City,StateProvinceID,PostalCode,rowguid,ModifiedDate) " +
                                  " values('{0}','{1}','{2}','{3}','{4}','{5}','{6}') ";       //Sql语句       


                    string v1 = Convert.ToString(b.Sheets[0][i,1].Value);   //读取每条数据
                    string v2 = Convert.ToString(b.Sheets[0][i,2].Value);   

                    string v3 = Convert.ToString(b.Sheets[0][i,3].Value);                
                    string v4 = Convert.ToString(b.Sheets[0][i,4].Value);   

                    string v5 = Convert.ToString(b.Sheets[0][i,5].Value);   

                    string v6 = Convert.ToString(b.Sheets[0][i,6].Value);
                    string v7 = Convert.ToString(b.Sheets[0][i,7].Value);


                    sql = String.Format(sql,v1,v2,v3,v4,v5,v6,v7);   //拼装SQL语句
                    try
                    {
                        int result = DataAccess.EditData(sql);//是自己写的数据库组件层的方法


                        Response.Write("<script>alert('good');</script>");//测试是否成功将数据导入到数据库
                    }
                    catch (Exception ee)
                    {
                        string error = ee.Message;
                    }
                }
            }
        }
    }

    -------------------------------------------------------------------------

    下面是yinAddress表的生成语句

    USE [AdventureWorks]  //这个是Sql Server2005自带的一个数据库,我在里面建了一个表 表名就叫yinAddress
    GO
    /****** 对象:  Table [dbo].[yinAddress]    脚本日期: 08/27/2008 17:57:26 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[yinAddress](
     [AddressID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
     [AddressLine1] [nvarchar](60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
     [AddressLine2] [nvarchar](60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
     [City] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
     [StateProvinceID] [int] NOT NULL,
     [PostalCode] [nvarchar](15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
     [rowguid] [uniqueidentifier] ROWGUIDCOL  NOT NULL CONSTRAINT [DF_yinAddress_rowguid]  DEFAULT (newid()),
     [ModifiedDate] [datetime] NOT NULL CONSTRAINT [DF_yinAddress_ModifiedDate]  DEFAULT (getdate()),
     CONSTRAINT [PK_yinAddress_AddressID] PRIMARY KEY CLUSTERED
    (
     [AddressID] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

    ----------------------------------------------------------------

    上面的代码已经测试,针对Excel2003和Excel2007都可以


  • 相关阅读:
    测试1.书店的增删改查项目.链接数据库
    添加约束及打印五角星及查询
    结构
    安装StarUML 及使用时序图(Sequence Diagram)和用例图(use case diagram)
    UMLUnified Modeling Language (UML)又称统一建模语言或标准建模语言
    电视机与遥控器之间的交互
    泛型集合
    狮子和计算Java题
    华为机试——求两个数之间的素数
    判断一个数是否是素数
  • 原文地址:https://www.cnblogs.com/luluping/p/1519055.html
Copyright © 2011-2022 走看看