VBS將本地的Excel數據導入到SQL Server中
阿新 • • 發佈:2017-05-14
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中