我有一個約1000行和約15列的Excel電子表格。我想要做的是將這些數據導入到表格中,但有選擇地導入。我想從第5行(比如說)開始,直到從表格末尾開始的大約5行。這是因爲行數可能會有所不同,但我確信無論電子表格中的行數是多少,我都不需要最後的4-5行。另外,我想只插入幾列,如Col1-Col5,Col7-Col9和Col12-Col15。是否有一個命令可以用來實現這一目標?請儘快通知我。非常感謝!如何將XLS的特定列插入到MS SQL Server表中?
0
A
回答
0
下面的代碼根據xls中的內容創建一個包含SQL指令的文件。你只需要添加一個宏,粘貼它,並改變一些東西(添加一段時間來填充ColFields集合的標題行,其中列名必須與表字段名匹配,聲明什麼不是,給fileName一個值。 ..)。 然後執行宏,你將得到一個包含你想要的所有插入的文件,然後你只需要在你的基礎上執行這個文件。
Sub Macro1()
Dim NbOfLines = Worksheets(Sheet1).Range("A65536").End(xlUp).Row - 5 'Not the 5 last lines
Dim ColFields As New Collection 'Do a while on the title line to fill the collection with wanted columns titles (do not add ignored columns)
Dim StartSql As String
StartSql = "INSERT INTO " + TableName + "("
For Each loopField In ColFields
StartSql = StartSql + loopField + ","
Next
StartSql = Left(StartSql, Len(StartSql) - 1)
StartSql = StartSql + ") SELECT "
Dim Value As String
For i = 1 To NbOfLines
Sql = ""
j = 1
For Each loopField In ColFields
Value = Worksheets(SheetName).Cells(i, j).Value
Sql = Sql + IIf(Value = "", "NULL", "'" + Replace(Value, "'", "''") + "'") + ","
j = j + 1
Next
Sql = Left(Sql, Len(Sql) - 1)
Sql = StartSql + Sql + vbCrLf
Call WriteLine(Sql, FileName)
Next
End Sub
Public Sub WriteLine(Ligne As String, FileName As String)
Open FileName For Append As #1
Print #1, Ligne
Close
End Sub
編輯:我知道這是不是最好的方法(也不是最漂亮的一個),我給你的COS'我用它在幾個星期前就從數據庫導入數據到另一個(但我需要只做一次,而不是每天)。 我也知道有一種方法可以用OpenRowSet來做到這一點,但我只是不知道如何(我會經常在這個頁面上希望有人會教我)。 最後,我建議您閱讀本頁:A Blog Page With A Solution (您會在這裏找到偉大的程序'uftReadfileAsTable':The Procedure Code) 祝您好運!
相關問題
- 1. 如何將C sharp中的列表插入到SQL Server 2008中?
- 2. 如何在SQL Server 2012的特定列中插入數據?
- 3. 無法將數據插入到MS Access中的特定表中
- 4. 在MS SQL Server中以特定格式插入日期時間
- 5. 將表插入到SQL Server視圖中
- 6. 將特定的有限數字插入到SQL Server中的列中
- 7. 如何在MS sql server中插入md5散列值?
- 8. 找到最後插入MS SQL SERVER
- 9. 從MS Access插入到帶有GUID pk的SQL Server表中
- 10. 將對象列表插入到SQL Server表中
- 11. 如何將包含Null值的DataTable插入到Sql Server表中?
- 12. 如何將XML數據插入到表中的SQL Server 2005
- 13. 如何將列表中的值插入到Sql表中
- 14. 將SQL Server行插入到格式化表中的特定位置
- 15. 如何將XML數據中的標識ID列插入到SQL Server表中?
- 16. 如何將字節[]插入到SQL Server VARBINARY列中
- 17. 從.xls LongText導入數據到MS SQL
- 18. 插入到MongoDB的MS SQL
- 19. 如何將隨機值插入到SQL Server表中?
- 20. 如何將Deedle數據框插入到SQL Server表中
- 21. 如何將IEnumerable <XElement>對象插入到SQL Server表中?
- 22. 如何將數據框插入到SQL Server表中?
- 23. 如何防止將重複數據插入到SQL Server表中?
- 24. 如何將記錄插入到sql server express數據庫表中?
- 25. 插入特定列表時觸發SQL SERVER
- 26. 在MS SQL Server 2005中插入IGNORE?
- 27. 插入XML到SQL Server表
- 28. 將泛型列表C#插入到SQL Server中
- 29. 如何將數據從ASP.Net插入MS SQL Server?
- 30. 如何將文件添加到MS SQL Server中的表
感謝您的回覆! :)有沒有比這更簡單的方法?有沒有辦法使用openrowset來做同樣的事情?而且,如果我要使用這個文件,我該把它放在哪裏?另外,文件名稱每天都會有所不同。如何說明其「動態」性質?此外,看看這段代碼,我是否正確地假設表中的列名和文件中的列名是相同的,即由於我將運行的while循環?請儘可能讓我知道。 – CodingInCircles 2011-03-08 13:02:56
我想我真正想知道的是如果有一個SQL命令來做到這一點。爲了簡單起見。謝謝! – CodingInCircles 2011-03-08 13:15:25
非常感謝您的回覆!將查看鏈接。謝謝! – CodingInCircles 2011-03-09 06:00:57