将Excel数据导入到SQL Server

我想从excel文件中插入数据到SQL Server ..我用下面的SQL语句:

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=Y:\Path.xls', 'SELECT * FROM [Sheet$]') 

但我收到以下错误 –

消息7403,级别16,状态1,行1
OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”尚未注册。

您可以改为使用SQL Server的导入数据向导。

如果您使用SQL Server版本> = 2005,则可以使用pipe理工作室或SSIS。

检查链接http://msdn.microsoft.com/en-us/library/ms140052(v=SQL.90).aspx

尝试运行这个:

 USE [tableName] GO EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 GO EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1 GO 

在你的查询

并使用Microsoft.ACE.OLEDB.12.0而不是“Microsoft.Jet.OLEDB.4.0”,为我工作

您可以使用以下代码从Excel导入SQL中的数据。 只是你需要明白,你必须在VBA中添加一个库,然后才能使用下面的代码。 进入VBA,然后添加参考 – Microsoft ActiveX数据对象2.8库。

 Sub sbADOExample() Dim sSQLQry As String Dim ReturnArray Dim Conn As New ADODB.Connection Dim mrs As New ADODB.Recordset Dim DBPath As String, sconnect As String DBPath = ThisWorkbook.FullName 'You can provide the full path of your external file as shown below 'DBPath ="C:\InputData.xlsx" sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';" Conn.Open sconnect sSQLSting = "SELECT * From [Sheet1$]" ' Your SQL Statement (Table Name= Sheet Name=[Sheet1$]) mrs.Open sSQLSting, Conn '=>Load the Data into an array 'ReturnArray = mrs.GetRows ''OR'' '=>Paste the data into a sheet Sheet2.Range("A2").CopyFromRecordset mrs 'Close Recordset mrs.Close 'Close Connection Conn.Close End Sub