注册 登录
编程论坛 SQL Server论坛

[求助]用VB如何将数据从Excel导入到MS SqlServer中?

ruijian1227 发布于 2005-05-10 13:41, 4938 次点击
就是要从Excel导入数据到MSSqlServer2000中,

做毕设要用到,高手帮忙啊,万分感激!
20 回复
#2
EA_Games2005-05-16 23:04
转贴: SQL SERVER 与EXCEL的数据转换 1、在SQL SERVER里查询Excel数据: -- ====================================================== SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。 SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions ------------------------------------------------------------------------------------------------- 2、将Excel的数据导入SQL server : -- ====================================================== SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 实例: SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions ------------------------------------------------------------------------------------------------- 3、将SQL SERVER中查询到的数据导成一个Excel文件 -- ====================================================== T-SQL代码: EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""' 参数:S 是SQL服务器名;U是用户;P是密码 说明:还可以导出文本文件等多种格式 实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"' EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword' 在VB6中应用ADO导出EXCEL文件代码: Dim cn As New ADODB.Connection cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;" cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'" ------------------------------------------------------------------------------------------------- 4、在SQL SERVER里往Excel插入数据: -- ====================================================== insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3) T-SQL代码: INSERT INTO OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$] (bestand, produkt) VALUES (20, 'Test') -------------------------------------------------------------------------------------------------
#3
EA_Games2005-05-16 23:06
顺手转贴: SQL SERVER 与ACCESS的数据转换 熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明如下: 一、 SQL SERVER 和ACCESS的数据导入导出 常规的数据导入导出: 使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:   1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation   2Services(数据转换服务),然后选择 czdImport Data(导入数据)。   3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。   4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。   5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。 6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。 Transact-SQL语句进行导入导出: 1. 在SQL SERVER里查询access数据: -- ====================================================== SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名 ------------------------------------------------------------------------------------------------- 2. 将access导入SQL server -- ====================================================== 在SQL SERVER 里运行: SELECT * INTO newtable FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名 ------------------------------------------------------------------------------------------------- 3. 将SQL SERVER表里的数据插入到Access表中 -- ====================================================== 在SQL SERVER 里运行: insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名 (列名1,列名2) select 列名1,列名2 from sql表 实例: insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\db.mdb';'admin';'', Test) select id,name from Test INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名) SELECT * FROM sqltablename -------------------------------------------------------------------------------------------------
#4
ruijian12272005-05-17 12:29
很有用,谢谢版主了
#5
wq572005-06-14 05:25
提示: 该帖被管理员或版主屏蔽,只有管理员可见
#6
haitianyixian2005-08-24 09:13
太好了,正是我需要的
#7
rain78182005-09-06 15:10
太有用了,谢谢
#8
rongmai882006-01-05 21:57
太有用
#9
silence2006-05-06 09:32

大虾们,辛苦了!

#10
dsw182006-05-14 17:59

谢谢

#11
swpihchj2006-05-16 19:17
大侠们辛苦了!我正需要啊!!!
#12
xqiang2006-05-30 08:34
对我也很有用,

#13
suga2006-05-30 14:01
收下,顶!
#14
jokey2006-06-01 17:49

CREATE PROCEDURE excelout @strsql varchar(50)
AS
EXEC master..xp_cmdshell 'bcp "'+@strsql+'" queryout C:\authors.xls -c -Sjokey -Usa -Pjokey'
提示错误:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '+' 附近有语法错误。
使用变量,该怎么写这条语句。
谢谢!

CREATE PROCEDURE excelout @strsql varchar(150),@server varchar(50),@user varchar(30),@password varchar(50)
AS
declare @excelout varchar(280)
set @excelout='master..xp_cmdshell ''bcp "'+@strsql+'" queryout C:\excelout.xls -c -S'+@server+' -U'+@user+' -P'+@password+''''
exec(@excelout)



exec excelout 'SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname','jokey','sa','jokey'
自己解决了
又有一个新问题:
怎么把列名也导到EXCEL中去呢?

INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 5.0;Data source=C:\excelout.xls')...[excelout](A,B)
VALUES ('学号', '姓名')


服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.JET.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: 提供程序未给出有关错误的任何信息。]。

[此贴子已经被作者于2006-6-2 8:59:08编辑过]

#15
zfyhome2006-06-12 13:44
不错,学了
#16
a_zhe6192006-08-16 13:23

都是高手阿 羡慕

#17
ysf01812006-11-13 09:55
不错。支持中。。。。。。。。。
#18
sql20082006-11-16 17:13
不错!支持。
#19
wenjin2006-11-16 19:34
够牛的
#20
hyhhd2006-12-22 21:57
好强啊!
#21
xianyun19852007-02-14 16:14
新手上路  
1