有誰知道如何使用vba按列名將excel數據導入到sql數據庫中?如何通過列名使用vba導入excel excel到數據庫
例如: 我有一個excel文件,有5列:column1,column2,column3,column 4,第5列。這些列的位置隨機生成我只想導入3列的數據:column1,column3, column5到SQL數據庫使用vba
我浪費了很多天搜索谷歌,但無法找出解決方案。任何人都請幫我解決這個緊急問題。
謝謝!
有誰知道如何使用vba按列名將excel數據導入到sql數據庫中?如何通過列名使用vba導入excel excel到數據庫
例如: 我有一個excel文件,有5列:column1,column2,column3,column 4,第5列。這些列的位置隨機生成我只想導入3列的數據:column1,column3, column5到SQL數據庫使用vba
我浪費了很多天搜索谷歌,但無法找出解決方案。任何人都請幫我解決這個緊急問題。
謝謝!
您可以使用ADO連接。
您可以打開到目標服務器的連接,循環數據,然後將其插入目標數據庫。這可以讓你開始: http://www.vbexplorer.com/VBExplorer/vb_feature/june2000/Database_Beginner_ADO_DAO.asp
否則,根據你的目標數據庫,它可能有一些專有的導入工具 - 這通常會要求你導出你的excel到它能識別的格式。
對於一個完全成熟的解決方案,可以考慮使用ETL工具
Protected Sub just_Click(sender As Object, e As EventArgs) Handles just.Click
Dim cnn As SqlConnection
Dim sql As String
Dim i, j As Integer
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
cnn = New SqlConnection("***your connection string***")
cnn.Open()
sql = "SELECT * FROM exceltable"
Dim dscmd As New SqlDataAdapter(sql, cnn)
Dim ds As New DataSet
dscmd.Fill(ds)
For j = 0 To ds.Tables(0).Columns.Count - 1
xlWorkSheet.Cells(i + 1, j + 1) = _
ds.Tables(0).Columns(j).ColumnName
Next
For i = 0 To ds.Tables(0).Rows.Count - 1
For j = 0 To ds.Tables(0).Columns.Count - 1
xlWorkSheet.Cells(i + 2, j + 1) = _
ds.Tables(0).Rows(i).Item(j)
Next
Next
xlWorkSheet.SaveAs("D:\pappy.xlsx")
xlWorkBook.Close()
xlApp.Quit()
cnn.Close()
End Sub
請格式化你的代碼,以便它的可讀性。另外,對於那些發現這種情況的人來說,代碼的一些解釋不會受到傷害。 – thomasb 2015-06-01 09:05:37