`
leonardleonard
  • 浏览: 801459 次
社区版块
存档分类
最新评论

将Excel文件数据库导入SQL Server

阅读更多

将Excel文件数据库导入SQL Server的三种方案//方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server

openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files(*.xls)|*.xls";

if(openFileDialog.ShowDialog()==DialogResult.OK)
{
    FileInfo fileInfo = new FileInfo(openFileDialog.FileName);
    string filePath = fileInfo.FullName;
    string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";
    
    try
    {
        OleDbConnection oleDbConnection = new OleDbConnection(connExcel);
        oleDbConnection.Open();
        
        //获取excel表
        DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

        //获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素
        string tableName = dataTable.Rows[0][2].ToString().Trim();
        tableName = "[" + tableName.Replace("'","") + "]";

        //利用SQL语句从Excel文件里获取数据
        //string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;
        string query = "SELECT 日期,开课城市,讲师,课程名称,持续时间 FROM " + tableName;
        dataSet = new DataSet();

        //OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);
        //OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
        OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);
        
        oleAdapter.Fill(dataSet,"gch_Class_Info");

        //dataGrid1.DataSource = dataSet;
        //dataGrid1.DataMember = tableName;
        dataGrid1.SetDataBinding(dataSet,"gch_Class_Info");

        //从excel文件获得数据后,插入记录到SQL Server的数据表
        DataTable dataTable1 = new DataTable();
        
        SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,
classPlace, classTeacher, classTitle, durativeDate FROM gch_Class_Info",sqlConnection1);
        
        SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);
        
        sqlDA1.Fill(dataTable1);

        foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows)
        {
            DataRow dataRow1 = dataTable1.NewRow();
            
            dataRow1["classDate"] = dataRow["日期"];
            dataRow1["classPlace"] = dataRow["开课城市"];
            dataRow1["classTeacher"] = dataRow["讲师"];
            dataRow1["classTitle"] = dataRow["课程名称"];
            dataRow1["durativeDate"] = dataRow["持续时间"];

            dataTable1.Rows.Add(dataRow1);
        }

        Console.WriteLine("新插入 " + dataTable1.Rows.Count.ToString() + " 条记录");
        sqlDA1.Update(dataTable1);
        
        oleDbConnection.Close();

    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

 

 

//方案二: 直接通过SQL语句执行SQL Server的功能函数将Excel文件转换到SQL Server数据库

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files(*.xls)|*.xls";

SqlConnection sqlConnection1 = null;

if(openFileDialog.ShowDialog()==DialogResult.OK)
{
    string filePath = openFileDialog.FileName;

    sqlConnection1 = new SqlConnection();
    sqlConnection1.ConnectionString = "server=(local);integrated security=SSPI;initial catalog=Library";

    //import excel into SQL Server 2000
    /*string importSQL = "SELECT * into live41 FROM OpenDataSource" + 
        "('Microsoft.Jet.OLEDB.4.0','Data Source=" + "\"" + "E:\\022n.xls" + "\"" + 
        "; User ID=;Password=; Extended properties=Excel 5.0')...[Sheet1$]";*/

    //export SQL Server 2000 into excel
    string exportSQL = @"EXEC master..xp_cmdshell
'bcp Library.dbo.live41 out " + filePath + "-c -q -S" + "\"" + "\"" +
        " -U" + "\"" + "\"" + " -P" + "\"" + "\"" + "\'";
    
    try
    {
        sqlConnection1.Open();
        
        //SqlCommand sqlCommand1 = new SqlCommand();
        //sqlCommand1.Connection = sqlConnection1;
        //sqlCommand1.CommandText = importSQL;
        //sqlCommand1.ExecuteNonQuery();
        //MessageBox.Show("import finish!");
        
        SqlCommand sqlCommand2 = new SqlCommand();
        sqlCommand2.Connection = sqlConnection1;
        sqlCommand2.CommandText = exportSQL;
        sqlCommand2.ExecuteNonQuery();
        MessageBox.Show("export finish!");
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

if(sqlConnection1!=null)
{
    sqlConnection1.Close();
    sqlConnection1 = null;
}

 

 


//方案三: 通过到入Excel的VBA dll,通过VBA接口获取Excel数据到DataSet

OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "Excel files(*.xls)|*.xls";

ExcelIO excelio = new ExcelIO();

if(openFile.ShowDialog()==DialogResult.OK)
{
    if(excelio!=null)
        excelio.Close();

    excelio = new ExcelIO(openFile.FileName);
    object[,] range = excelio.GetRange();
    excelio.Close();

    
    DataSet ds = new DataSet("xlsRange");

    int x = range.GetLength(0);
    int y = range.GetLength(1);

    DataTable dt = new DataTable("xlsTable");
    DataRow dr;
    DataColumn dc;
    
    ds.Tables.Add(dt);

    for(int c=1; c<=y; c++)
    {
        dc = new DataColumn();
        dt.Columns.Add(dc);
    }
    
    object[] temp = new object[y];
    
    for(int i=1; i<=x; i++)
    {
        dr = dt.NewRow();

        for(int j=1; j<=y; j++)
        {
            temp[j-1] = range[i,j];
        }
        
        dr.ItemArray = temp;
        ds.Tables[0].Rows.Add(dr);
    }

    dataGrid1.SetDataBinding(ds,"xlsTable");
    
    if(excelio!=null)
        excelio.Close();
}

 

 
分享到:
评论

相关推荐

    Excel导入SQLserver源码

    Excel导入SQLserver源码 Excel是一种非常灵活的电子表格软件,用它可以存储各种数据,本节将对如何将Excel导入SQL Server2000数据库进行详细介绍。 开发环境:NET2.0 开发工具:vs2005 开发语言:c# 数据库:server...

    Excel数据导入到SQLServer数据库中

    在提供的“Excel数据导入SQLServer”压缩包中,可能包含了实现这一功能的源码示例,可以供开发者参考学习。通过深入理解这些知识点和实践操作,你可以有效地将Excel数据导入到SQL Server数据库,提高数据管理效率。

    WInform 程序 将Excel导入SQLSERVER数据库

    在IT行业中,将Excel数据导入SQL Server数据库是一个常见的任务,特别是在数据分析、报表生成以及系统集成等领域。本篇文章将深入探讨如何使用WInform程序实现这一功能,主要涉及的关键词包括Excel、SQL Server和...

    一个将excel文件导入到SQLServer表中的例子

    首先,我们需要理解标题中提到的“一个将excel文件导入到SQLServer表中的例子”。这个过程通常涉及到数据迁移,即从Excel格式的数据源转移到结构化的数据库存储,如SQL Server 2000。Excel文件是一种灵活的数据处理...

    dbf文件导入SQL server

    首先,要将DBF文件导入SQL Server,你需要遵循以下步骤: 1. 创建SQL Server数据库表:在SQL Server Management Studio (SSMS) 中,根据DBF文件中的字段定义创建一个新表。表结构应与DBF文件的字段对应,确保数据...

    怎样在PB中实出,将EXCEL数据表,导入到SQLSERVER数据库中[定义].pdf

    PB 中实现将 EXCEL 数据表导入到 SQL SERVER 数据库中的方法 在 PB 中,可以通过多种方式将 EXCEL 数据表导入到 SQL SERVER 数据库中。下面是其中的一些方法: 1. 使用 IMPORTFILE() 函数 在 PB 中,可以使用 ...

    excel导入sql server数据库源码

    在IT行业中,数据管理和操作是至关重要的任务,尤其是在企业级应用中。...以上就是关于“Excel导入SQL Server数据库源码”的主要知识点,涵盖了数据迁移的多种方式以及编程实现的细节,希望能对你的工作提供帮助。

    Oracle数据库导入到SqlServer步骤(图文篇)

    本文将详细介绍如何将 Oracle 数据库导入到 SqlServer 中。 Step 1-6: 数据源设置 首先,在要导入的数据库上右键,点击“任务”-“导入数据”。然后,在“导入导出向导”中点击“下一步”。接着,选择数据源为...

    Excel导入SQLserver源码_excel2sql.zip

    这个压缩包文件"Excel导入SQLserver源码_excel2sql.zip"很可能包含了一个程序或脚本,用于自动化从Excel文件批量导入数据到SQL Server的过程。通常,这样的工具会使用编程语言如Python、C#、VB.NET或PowerShell来...

    将txt与excel文件导入SQLServer数据库的sql代码

    以下内容详细介绍了如何使用SQL Server中的BULK INSERT语句将txt和excel文件中的数据导入SQL Server数据库的具体操作步骤和示例代码。 1. SQL Server批量导入概念 - BULK INSERT是SQL Server提供的一个功能强大的...

    用C# 编程将Excel 文档数据导入SQLServer数据库

    在本教程中,我们将深入探讨如何使用C#将Excel文档中的数据有效地导入到SQL Server数据库中。这个过程涉及到文件I/O操作、数据处理和数据库连接,是数据迁移和ETL(提取、转换、加载)流程中常见的一步。 首先,...

    java使用POI将Excel文件中数据导入SqlServer中

    在界面上有一个TextField,一个浏览按钮,一个导入按钮。当选择浏览按钮时,弹出文本选择窗口,选择Excel文件之后,将路径显示在TextField中。点击导入,将Excel中的数据保存到SqlServer数据库中。

    ASP实现 将Excel表格数据批量导入到SQLServer数据库

    ASP实现将Excel表格数据批量导入到SQLServer数据库的过程中涉及的知识点主要包括以下几个方面: 1. Excel数据读取技术:在ASP中,可以使用ADO(ActiveX Data Objects)技术,通过ADODB组件读取Excel文件的数据。...

    C#将Excel数据导入到SQL server数据库

    综上所述,C#将Excel数据导入SQL Server数据库涉及到文件读取、数据转换和数据库操作等技能。通过选择合适的库和优化操作,可以高效地完成这一任务。在实际开发中,还需要考虑到错误处理、性能优化以及数据一致性等...

    将Excel数据导入到SQL Server数据库中的方法

    在日常工作中,经常需要将Excel文件中的数据导入到SQL Server数据库中,以便于进一步的数据处理、分析或整合。本文将详细介绍一种有效的导入方法,并针对过程中可能遇到的一些常见问题提供解决方案。 #### 一、导入...

    使用宏直接将EXCEL数据导入到sqlServer数据库

    利用EXCEL中的宏,直接将excel中的数据导入到sqlServer数据库脚本

    Excel导入SQLServer数据库工具(含源码)

    使用Asp.Net开发,用于导入Excel文件到SQLServer,支持配置导入字段。支持主键为Int的外键。 两种方式:1、先导入Excel再配置对应关系 2、先配置对应关系在导入

    C# excel 数据导入到sqlserver

    在本教程中,我们将探讨如何使用C#编程语言将Excel数据导入到SQL Server数据库中,这是一项常见的数据整合操作,尤其在数据分析、报表生成和系统集成等场景下非常实用。 首先,你需要了解的是C#的基础知识,它是一...

    将excel导入到sql server数据库

    本教程将详述如何将Excel数据导入到SQL Server数据库,以供Myeclipse等开发工具直接使用,这对于初学者来说是一个很好的实践案例。 首先,理解Excel的基本操作是必要的。Excel是一款功能强大的电子表格软件,广泛...

Global site tag (gtag.js) - Google Analytics