1. 程式人生 > >VBS將本地的Excel數據導入到SQL Server中

VBS將本地的Excel數據導入到SQL Server中

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註釋,然後執行嘗試

技術分享

執行後,會提示完成

技術分享

我們再次查看數據庫結果

技術分享

本文出自 “高文龍” 博客,謝絕轉載!

VBS將本地的Excel數據導入到SQL Server中