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

栏目: 数据库 · SQL Server · 发布时间: 7年前

内容简介:VBS将本地的Excel数据导入到SQL Server中

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

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

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

首先准备本地的Excel数据

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

然后准备数据库及表结构

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

开始上脚本

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将本地的Excel数据导入到SQL Server中

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

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

执行完成

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

我们查看数据库表

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

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

执行结果:

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

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

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

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

执行后,会提示完成

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

我们再次查看数据库结果

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

本文出自 “高文龙” 博客,谢绝转载!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

用户故事地图

用户故事地图

Jeff Patton / 李涛、向振东 / 清华大学出版社 / 2016-4-1 / 59.00元

用户故事地图作为一种有效的需求工具,越来越广泛地应用于开发实践中。本书以用户故事地图为主题,强调以合作沟通的方式来全面理解用户需求,涉及的主题包括怎么以故事地图的方式来讲用户需求,如何分解和优化需求,如果通过团队协同工作的方式来积极吸取经验教训,从中洞察用户的需求,开发真正有价值的、小而美的产品和服务。本书适合产品经理、用户体验设计师、产品负责人、业务分析师、IT项目经理、敏捷教练和精益教练阅读和......一起来看看 《用户故事地图》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具