如何将EXCEL数据导入到SQL SERVER数据库中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将EXCEL数据导入到SQL SERVER数据库中相关的知识,希望对你有一定的参考价值。

将EXCEL数据导入到SQL SERVER数据库最便捷的方法就是使用SqlCel。话不多说,直接上图

SqlCel可以一键批量导入Excel。

参考技术A 如果只有几张表的话可以直接复制,如果表比较多的话做一个小工具,将Excel读到DataTable中,然后再循环遍历,生成Insert into语句,直接在程序中执行生成的sql语句,或者将生成的sql语句记录到textrich控件中,再手动挪动到sql中执行,这样无论有多少个表多少条数据都很容易就搞定了。思路就是这个思路,我做项目时经常有遇到这样的情况,都是自己写的小工具。 参考技术B 企业管理器----找到数据库---右键---所有任务---导入数据----可以选择EXCEL方式,然后选择相关文件导入即可。 参考技术C 使用SQLSERVER的导入导出功能。

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注释,然后执行尝试

技术分享

执行后,会提示完成

技术分享

我们再次查看数据库结果

技术分享

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

以上是关于如何将EXCEL数据导入到SQL SERVER数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何将excel数据导入sql server

将Excel数据导入到SQL Server中

SQL Server2014 任务导入数据导入Excel表操作无法完成

如何在导入到 SQL Server 数据库时删除 Excel 电子表格的顶部行

如何将SQL Server中多个表的数据一次性返回到一张EXCEL工作表(Sheet)中

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