【发布时间】:2014-03-02 21:50:36
【问题描述】:
我每天需要将大量(近一百万)数据从 SQLServer 导出到 Excel。正在通过存储过程处理数据,然后我将它们放在 DataSet 上并尝试使用以下代码导出:
` Private Sub ExportToExcel(ByVal dtTemp As System.Data.DataTable, ByVal filepath As String) Dim strFileName As String = 文件路径
Dim _excel As New Excel.Application
Dim wBook As Excel.Workbook
Dim wSheet As Excel.Worksheet
wBook = _excel.Workbooks.Add()
wSheet = wBook.ActiveSheet()
Dim dt As System.Data.DataTable = dtTemp
Dim dc As System.Data.DataColumn
Dim dr As System.Data.DataRow
Dim colIndex As Integer = 0
Dim rowIndex As Integer = 0
For Each dc In dt.Columns
colIndex = colIndex + 1
wSheet.Cells(1, colIndex) = dc.ColumnName
Next
For Each dr In dt.Rows
rowIndex = rowIndex + 1
colIndex = 0
For Each dc In dt.Columns
colIndex = colIndex + 1
wSheet.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
Next
Next
wSheet.Columns.AutoFit()
wBook.SaveAs(strFileName)
ReleaseObject(wSheet)
wBook.Close(False)
ReleaseObject(wBook)
_excel.Quit()
ReleaseObject(_excel)
GC.Collect()
End Sub`
有没有更快的方法呢? 数据集到剪贴板然后粘贴到excel怎么样?
【问题讨论】:
-
要将 SQL 查询的结果导出到 Excel,请查看此 SO 帖子:stackoverflow.com/a/7390928/1339616
-
我猜它不适用于存储过程。我得到了关于存储过程结果的数据。
-
从您的数据创建一个二维数组 - 您可以通过一次操作将其放置在工作表上。在此处查看接受的答案stackoverflow.com/questions/536636/write-array-to-excel-range
标签: sql-server vb.net excel dataset