您现在的位置是:首页 > 文章详情

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

日期:2017-05-14点击:418

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

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

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

首先准备本地的Excel数据

p_w_picpath

然后准备数据库及表结构

p_w_picpath

开始上脚本

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

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

p_w_picpath

p_w_picpath

p_w_picpath

执行完成

p_w_picpath

我们查看数据库表

p_w_picpath

因为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

执行结果:

clipboard

clipboard[1]

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

p_w_picpath

执行后,会提示完成

p_w_picpath

我们再次查看数据库结果

p_w_picpath

原文链接:https://blog.51cto.com/gaowenlong/1925458
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章