VBS将本地的Excel数据导入到SQL Server中

最近有个测试,需要将本地的Excel数据导入到SQL Server中,所以就写了一个这个脚本,供有需要的同学进行参考。因为在此演示测试,所以准备的数据都比较简单。

我们准备将本地的Excel的A列插入到数据库中的Username列

首先准备本地的Excel数据

image

然后准备数据库及表结构

image

开始上脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Dim DB,objRecordSet
Dim Excel
'SQL Server服务器地址
Dim SQLserver
'SQL Server 数据库
Dim Database
'SQL Server登录名
Dim uid
'SQL Server登陆密码
Dim  pwd
'SQL Server 数据库表名
Dim Tablename
'SQL Server数据库表列字段
Dim Column
'Excel表路劲
Dim XLSPath
SQLserver =  "192.168.7.170"
Database =  "PasswordInfo"
uid =  "sa"
pwd  "Password"
tablename =  "UserServerInfo"
column =  "Username"
XLSPath =  "d:\users.xlsx"
Set DB = CreateObject( "ADODB.Connection" )
Set objRecordSet = CreateObject( "ADODB.RECORDSET" )
Set Excel = CreateObject( "Excel.Application" )
DB.Open  "Driver=SQL Server;server=" &SQLserver& ";Database=" &Database& ";uid=" &uid& ";pwd=" & pwd & ";"
Excel.DisplayAlerts=FALSE
Excel.visible=FALSE
Excel.workbooks. open (XLSPath)
line = 1
value = Excel.ActiveSheet.Cells(line,1).Value
Do While value <>  ""
line = line + 1
insertDB(value)
value = Excel.ActiveSheet.Cells(line,1).Value
Loop
msgbox  "Finish"
Function insertDB(value)
sql =  "insert into " &Tablename & "(" & Column & ") VALUES (" & "'" &value& "'" & ")"
msgbox sql
DB.Execute(sql)
End Function

我们开始开执行,开始插入第一条数据

image

image

image

执行完成

image

我们查看数据库表

image

因为vbs脚本里面有连接数据库的账户及密码,比较敏感,所以我们为了安全,我们需要将vbs转化成exe,但是这样的话,文件路劲是写死的,不方便,所以我们需要将源文件的路劲更改成浏览框。

1
2
3
4
5
更换前:
'XLSPath =  "d:\users.xlsx"
更换后:
msgbox  "请选择源文件"
XLSPath = CreateObject( "WScript.Shell" ).Exec( "mshta vbscript:" "<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>" "" ).StdOut.ReadAll

修改后的整体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Dim DB,objRecordSet
Dim Excel
'SQL Server服务器地址
Dim SQLserver
'SQL Server 数据库
Dim Database
'SQL Server登录名
Dim uid
'SQL Server登陆密码
Dim  pwd
'SQL Server 数据库表名
Dim Tablename
'SQL Server数据库表列字段
Dim Column
'Excel表路劲
Dim XLSPath
  
SQLserver =  "192.168.7.170"
Database =  "PasswordInfo"
uid =  "sa" 
pwd  "Password"
tablename =  "UserServerInfo" 
column =  "Username"
'XLSPath =  "d:\users.xlsx"
msgbox  "请选择源文件"
XLSPath = CreateObject( "WScript.Shell" ).Exec( "mshta vbscript:" "<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>" "" ).StdOut.ReadAll
Set DB = CreateObject( "ADODB.Connection" )
Set objRecordSet = CreateObject( "ADODB.RECORDSET" )
Set Excel = CreateObject( "Excel.Application" )
DB.Open  "Driver=SQL Server;server=" &SQLserver& ";Database=" &Database& ";uid=" &uid& ";pwd=" & pwd & ";"    Excel.DisplayAlerts=FALSE    Excel.visible=FALSE    Excel.workbooks. open (XLSPath)
line = 1
value = Excel.ActiveSheet.Cells(line,1).Value 
   Do While value <>  "" 
     line = line + 1   
     
      insertDB(value)  
       value = Excel.ActiveSheet.Cells(line,1).Value 
          Loop
msgbox  "Finish"
 
Function insertDB(value) 
  sql =  "insert into " &Tablename & "(" & Column & ") VALUES (" & "'" &value& "'" & ")"   
       'msgbox sql    
       DB.Execute(sql)  
    End Function

执行结果:

clipboard

clipboard[1]

我们将提示插入的数据的msgbox注释,然后执行尝试

image

执行后,会提示完成

image

我们再次查看数据库结果

image



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1925458,如需转载请自行联系原作者

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值