Excel数据导入SQL Server

基本有2种方案,都是无需安装Office的方案

Ole DB读取 + BulkCopy

获取Excel各个SheetName

//连接串
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn); 

conn.Open(); 

//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); 

//包含excel中表名的字符串数组
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++)
{
    strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
return strTableNames;

NPOI读取 + BulkCopy

获取Excel各个SheetName

using (FileStream fs = File.OpenRead(txtPath.Text)) //打开myxls.xls文件
{
    HSSFWorkbook wk = new HSSFWorkbook(fs);
    string[] strTableNames = new string[wk.NumberOfSheets];
    for (int i = 0; i < wk.NumberOfSheets; i++) //NumberOfSheets是myxls.xls中总共的表数
    {
        strTableNames[i] = wk.GetSheetAt(i).SheetName;
    }
    return strTableNames;
}

SQLBulkCopy数据写入

using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))
{
    //bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
    bcp.BatchSize = 100;//每次传输的行数
    bcp.NotifyAfter = 100;//进度提示的行数
    bcp.DestinationTableName = sheetName;//目标表
    bcp.WriteToServer(ds.Tables[0]);
}
时间: 2024-10-25 06:18:46

Excel数据导入SQL Server的相关文章

用代码将Excel数据导入Sql Server

这里直接用小例子说明. 1.打开VS2010—>文件—>新建—>网站,选择ASP.NET空网站并设置存放路径以创建空网站.(我这里路径设置为D:\excelEduceToSql) 2.创建数据库test并在test数据库中创建my_test表(我这里在excelEduceToSql文件夹中创建SQL文件夹并将数据库保存在里面). (表的字段如下:)  tid(int)  tname(nvarchar(50))  tt(nvarchar(50)) 3.创建Excel表(我这里的Excel表

Excel数据导入 SQL SERVER数据库

Step1:打开数据库,选择你要导入的目标表所在的数据库 step2:任务---导入数据 step3:数据源选择excel,选择对应的路径,版本,第一行是否为标题行. step4 :选择目标,本次导入的是目标是sqlserver,填入对应的服务器数据库名称. step5:按需要选择,我这次目的是导入表格全部数据,所以选第一个. step6:源和目标.excel如果有多个表sheet,选择对应的sheet.目标默认是新建一张表.这里我们是要导入数据到已有的表格,所以选择对应的目标表. 导入前已经确

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表

极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)

原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间. 本实验中所用到工具为VS2008和SQL SERVER 2000.SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008中,实验环境是DELL 2850双2.0GCPU,2G内存的服务器.感兴趣的朋友可以下载源代码自己验证一下所用时间

手动将Excel数据导入SQL

1. 右键点击数据库名称,Tasks --> Import Data... 2. Choose Data Source:MicroSoft Excel,选择Excel文件和Excel版本.Excel版本和数据源Excel一定要匹配 3. Choose a Destination: SQL Server Native Client 10.0, 输入要导入的Sql Server名字,验证方式,用户名密码,选择要导入的数据库 4. 勾选要导入的Excel的工作表(Source),选择要导入的SQL 数

EXCEL数据导入SQL表的方法

1.建立与数据库配对的EXCEL数据表 2.在SQL中获取插入语句脚本整理出橙色栏位的格式 3.每个数据栏位转换成符合SQL格式的数据,如:蓝色部分 4.再把蓝色部分的数据以逗号间隔连接在一起 5.把橙色部分和黄色部分链接形成黄色部分的最终插入语句 6.把黄色部分复制粘贴到查询分析器并运行就导入成功 7.如果想把原有输入删除后导入需要先运行DELETE语句 此方法对首次导入数据时非常好用.只要写出一条记录的插入语句,其他记录可以用EXCEL的复制功能轻松获得. EXCEL中使用了简单公式,需要E

Excel文件导入SQL Server数据库表

--office 2003--如果接受数据导入的表已经存在insert into DemoTable select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=d:/Demo.xls',sheet1$)--如果导入数据并生成表select * into DemoTable  from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;D

Execl数据导入SQL Server

将execl表格 数据导入进数据库 可以指定列 也可以 * 注意:该语句只能在本地数据库执行 如果连接的是远程服务器 应到该服务器上执行语句 设置服务器全局配置 启用Ad Hoc Distributed Queries 该组件存在 安全隐患 所以默认是关闭 exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure 可以导入

Execl数据导入sql server方法

在日常的程序开发过程中,很多情况下,用户单位给予开发人员的数据往往是execl或者是access数据,如何把这些数据转为企业级是数据库数据呢,下面就利用sqlserver自带的功能来完成此项任务. 首先打开数据库,右键点击数据库,选择任务. 选择导入数据 弹出导入数据对话框 点击下一步,在数据源下拉框里选择要导入的数据类型,此例中选择execl 点击浏览,选择即将导入的execl文件 目标选择默认的,服务器选择你要导入数据的数据库服务器名称,验证方式根据实际情况选择.数据库是你要把数据将要导入的