Excel数据批量导入到SqlServer的方法

1,以Excel为数据源建立连接导入。

关键点在于Excel的数据要有表头,表头要和数据库表的列名一样。连接字符串中HDR=YES不能省略,也就是第一行是表头的意思。IMEX=1;是把数据都当作字符串读取。

Sub test()
     
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Dim Headers As Boolean
    Dim strConn As String
    Dim path As String
    
    On Error GoTo test_Error
    
    Headers = True
    path = "c:\20131212.xls"
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & path & ";" & _
              "Extended Properties=""Excel 8.0; IMEX=1;HDR=YES"""
                  
    Debug.Print strConn
    Set cn = New ADODB.Connection
    cn.Open strConn
     
     'Import by using Jet Provider.
    strSQL = "Insert INTO [odbc;Driver={SQL Server};" & _
             "Server=192.168.6.111;Database=answer;" & _
             "UID=sa;PWD=password].test1 " & _
             "Select * FROM [Sheet1$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff
    Debug.Print "Records affected: " & lngRecsAff
     
    cn.Close
    Set cn = Nothing
     
    On Error GoTo 0
    Exit Sub
     
test_Error:
     
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure test of VBA Document ThisWorkbook"
     
End Sub

 2,还有一种方案,是以sqlserver为数据源,写法大致如下

 "INSERT INTO [档案1] SELECT * FROM [Excel 8.0;Database=" & ThisWorkbook.FullName & ";HDR=YES].[sheet1$" & addr & "];"

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的pandas库和pyodbc库来实现将Excel数据批量导入SQL Server数据库。 首先需要安装pandas库和pyodbc库,可以使用以下命令进行安装: ``` pip install pandas pip install pyodbc ``` 然后可以按照以下步骤进行操作: 1. 使用pandas库读取Excel数据,可以使用以下代码: ``` import pandas as pd df = pd.read_excel('data.xlsx') ``` 其中,`data.xlsx`是要导入Excel文件名,可以根据实际情况修改。 2. 连接SQL Server数据库,可以使用以下代码: ``` import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=server_name;' 'Database=database_name;' 'Trusted_Connection=yes;') ``` 其中,`server_name`和`database_name`分别是SQL Server服务器名称和数据库名称,可以根据实际情况修改。 3. 将数据导入SQL Server数据库,可以使用以下代码: ``` cursor = conn.cursor() for index, row in df.iterrows(): cursor.execute("INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)", row['column1'], row['column2'], row['column3']) conn.commit() ``` 其中,`table_name`是要导入数据的表格名称,`column1`、`column2`和`column3`分别是表格中要导入的列名,可以根据实际情况修改。 4. 关闭数据库连接: ``` conn.close() ``` 完整代码示例: ``` import pandas as pd import pyodbc df = pd.read_excel('data.xlsx') conn = pyodbc.connect('Driver={SQL Server};' 'Server=server_name;' 'Database=database_name;' 'Trusted_Connection=yes;') cursor = conn.cursor() for index, row in df.iterrows(): cursor.execute("INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)", row['column1'], row['column2'], row['column3']) conn.commit() conn.close() ``` 注意:在实际操作中,需要根据实际情况修改代码中的参数,例如Excel文件名、SQL Server服务器名称、数据库名称、表格名称和列名等。同时,在执行INSERT语句时,需要根据实际情况修改VALUES后面的参数个数和顺序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值