从EXCEL导入数据到SQL SERVER

原创 2006年06月22日 18:50:00

EXCEL导入数据到SQL SERVER

左直拳

介绍两种途径将数据从EXCEL中导入到SQL SERVER

一、        在程序中,用ADO.NET。代码如下:

 

//连接串

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + [EXCEL文件,含路径] + ";";

OleDbConnection conn = new OleDbConnection(strConn);

conn.Open();

         

DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE"});

DataSet ds = new DataSet();

//一个EXCEL文件可能有多个工作表,遍历之

foreach( DataRow dr in dtSchema.Rows )

{

   string table = dr["TABLE_NAME"].ToString();

   string strExcel = "SELECT * FROM [" + table + "]";

   ds.Tables.Add(table);

 

   OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel,conn);

   myCommand.Fill(ds,table);

}

 

conn.Close();

 

这样,读取出来的数据就藏在DataSet里了。

采用这种方式,数据库所在机器不必装有EXCEL

 

二、        在查询分析器里,直接写SQL语句:

如果是导入数据到现有表,则采用

INSERT INTO SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

的形式

如果是导入数据并新增表,则采用

SELECT * INTO FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

的形式。

 

以上语句是将EXCEL文件里SHEET1工作表中所有的列都读进来,如果只想导部分列,可以

INSERT INTO (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

 

其实可以将OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)当成一个表,例如我就写过这样一个句子:

 

INSERT INTO eval_channel_employee(channel,employee_id)

SELECT CASE a.渠道 WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN 'KCM' THEN 2 ELSE 3 END

,b.id FROM

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/temp/name.xls',sheet1$) AS a,pers_employee b

WHERE a.员工编码=b.code

 

不管是哪种方式,哪种途径,系统都会默认将第一行上的内容作为字段名。

版权声明:本文为博主原屙文章,喜欢你就担走。

相关文章推荐

Excel数据导入SQL Server 辅助工具

  • 2007年12月10日 08:14
  • 109KB
  • 下载

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

C#、ASP.NET中将Excel表中的数据导入到Sql Server数据库中对应的表中。 这里我们将E:\test.xls中Sheet1表中的数据导入到test数据库中的my_test表中。 软...

二、SQL SERVER 和EXCEL的数据导入导出

二、SQL SERVER 和EXCEL的数据导入导出 1、在SQL SERVER里查询Excel数据: -- ===========================================...

.net导入Excel数据遇到问题(SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDataso)

这些天一直在做.net导入导出Excel的程序。在这里写一下过程和遇到的问题。 一 》excel导入:excel导入有多种方式,我这里用到的是sqlserver的组件'Ad Hoc Distribu...

利用ultra edit将excel中的数据导入SQL Server

将excel中的数据导入到SQL Server的表中, 有很多种办法, 我介绍一种用ultra edit构造语句的办法. 1.将excel中的数据全部拷贝, 粘贴到ultra edit中 ...

Excel数据导入Sql Server出现Null

Excel文件: 序号 姓名 内部电话 住址 1 小李 1234 …… 2 小王 5678 ...
  • Mevin
  • Mevin
  • 2012年02月09日 15:14
  • 10439

把excel表中的数据导入到SQL Server2008的库中

首先,打开数据库,找到你想要的那个数据库右击该数据库,然后把鼠标移到任务上面会看到导入数据,然后单击导入数据在数据源那项选择exce会看到下面窗体 然后浏览选择你要导入的那个excel,然后下一步会...

使用C#将Excel文件中数据导入SQL Server数据库

由于项目中加入了新的功能,可以使管理员向数据库中导入Excel数据。因此,在商品管理这块需要对Excel进行操作,在网上查了些资料,根据项目的实际情况进行了一定的优化,这里简单的介绍下。 C#代码 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从EXCEL导入数据到SQL SERVER
举报原因:
原因补充:

(最多只允许输入30个字)