我發現了一種直接(更快)地提取MS Sql表格的內容到excel的方法。但我不知道如何使用需要參數的存儲過程來完成此操作。是否可以直接提取存儲過程的結果到Excel文件中?我知道如何間接使用它(使用數據表),但速度太慢。非常感謝你。 PS:這是我用來做一些測試的方法。它適用於一個表格,但我需要的是提取存儲過程的結果:如何將存儲過程的結果直接導出到MS Excel文件?
Private Sub SqlToExcelTest2(ByVal excelFilePath As String, _
ByVal nonExistingSheetName As String, _
ByVal sqlServer As String, _
ByVal sqlDatabase As String, _
ByVal sqlUserName As String, _
ByVal sqlPassword As String, _
ByVal sqlTable As String)
Const excelConnStrTemplate As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=2"";"
Dim connStr As String = String.Format(excelConnStrTemplate, _
excelFilePath)
Const adoQueryTemplate As String = "SELECT * INTO {0} FROM [odbc;Driver={{SQL Server}};" & _
"Server={1};Database={2};UID={3};PWD={4}].[{5}] "
Dim query As String = String.Format(adoQueryTemplate, _
nonExistingSheetName, _
sqlServer, _
sqlDatabase, _
sqlUserName, _
sqlPassword, _
sqlTable)
Using oleConn As New OleDb.OleDbConnection(connStr), oleCmd As New OleDb.OleDbCommand(query, oleConn)
oleConn.Open()
oleCmd.ExecuteNonQuery()
oleConn.Close()
End Using
End Sub
如果您只是偶爾進行測試,您是否可以使用Management Studio功能導出到Excel?將查詢輸出設置爲轉到Excel,然後在查詢窗口中運行sproc。 – DOK 2009-06-26 17:55:08