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

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

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

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

首先准备本地的Excel数据

然后准备数据库及表结构

开始上脚本

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

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

执行完成

我们查看数据库表

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

更换前:
'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

修改后的整体代码

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

执行结果:

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

执行后,会提示完成

我们再次查看数据库结果

©著作权归作者所有:来自51CTO博客作者高文龙的原创作品,谢绝转载,否则将追究法律责任

最新文章

  1. (转)Redis使用场景及使用经验
  2. Linux命令学习总结:dos2unix - unix2dos
  3. python-phpbb3 (可以用python3 操作 phpbb3 论坛的模块)
  4. 传递闭包(Floyd+bellman-Fold POJ1932)
  5. jqeury.base
  6. xtrabackup 安装、备份、还原及错误处理 教程
  7. Linux交叉开发环境搭建 —— 效率之源
  8. linux 编译安装nginx,配置自启动脚本
  9. 【leetcode】9. Palindrome Number
  10. C语言入门(20)——使用VC2013对C语言进行调试
  11. Docker学习总结(一)
  12. 每天一个JS 小demo之新建文件夹。主要知识点:DOM方法的综合运用
  13. deplyed使用归纳(转自月下独奏)
  14. 使用vba做一个正则表达式提取文本工具
  15. MySQL学习笔记_7_MySQL常用内置函数
  16. Linux journalctl命令
  17. syntax error near unexpected token `$&#39;\r&#39;&#39;
  18. .net正则匹配
  19. 动态导入Js文件
  20. 执行多条SQL语句,实现数据库事务(不可传入Sql参数)

热门文章

  1. luogu 3045 优先队列反悔/bzoj 2590
  2. 【Django】不知道为什么就是想学一下 01
  3. 前端向服务器请求数据并渲染的方式(ajax/jQuery/axios/vue)
  4. Linux下运行jmeter
  5. &#127827; redux示例 &#127827;
  6. CrackME 2011 # 2 逆向练习解题思路
  7. P4070 [SDOI2016]生成魔咒
  8. CentOS6.6 双网卡双网关配置
  9. Linux 文件系统IO性能优化【转】
  10. pandas爬虫