如何把EXCEL中的数据导入SQL SERVER数据库中
(2010-12-30 17:16:53)
有时候需要把EXCEL中的数据导入到数据库中。一条一条的在数据库中建数据显然不可取,如何找一条快捷的途径进行转换是很有必要的。在这里主要是介绍一种在EXCEL中用VBA进行编程,把EXCEL的数据转换成SQL语句,存入到一个文件中,然后在数据库服务器上提交这些SQL语句来实现。
一、两边的数据格式
(一)数据库的表结构
生成数据库表的SQL语句如下:
create table Address
(
ID Integer
identity(1,1) not null primary key,
Name
varchar(20) not null,
Dept
varchar(50),
Spell
varchar(20),
Mobile
varchar(11),
Tel
varchar(20),
EMail
varchar(30),
VOIP
varchar(6),
Remark
varchar(200),
);
EXCEL中的数据格式
姓名 |
部门 |
手机 |
电话 |
VOIP |
电子邮件 |
lisi |
人事部 |
13200000000 |
010-11111111-2222 |
111 |
z1@163.com |
(二)转换的VBA函数
Sub GenerateSQL()
Dim i, k As
Long
Dim s As
String
Open
"d:\txl.sql" For Output As
#1
'打开一个文件以供输入SQL语句
i = 2
While
Cells(i, 1) <> ""
s = "INSERT INTO ADDRESS (Name,Dept,Mobile,Tel,VOIP,EMail) VALUES
("
For k = 1 To 5
s = s & "'" & Cells(i, k)
& "',"
Next
s = s & "'" & Cells(i, 6)
& "');"
Print #1,
s '输出一条语句至文件
i = i + 1
Wend
Close
#1
'关闭文件
End Sub
以上的代码用于逐行把数据转换成SQL语句写入“d:\txl.sql”中。
(三)导入数据库
如果导入的数据库为SQL SERVER的话,很简单,在命令行下执行:OSQL -Hhost -Usa -Ppassword
-id:\txl.sql。文件中的语句会被一一执行。执行之后就完成数据转换的操作。
上面的这个方法还可以用于数据转换和区分数据。适当的调整上面的语句再加上字符串函数可以实现EXCEL向任意数据文件格式转换。并且还可以实现对数据文件进行分拆保存。
|