在VB.Net中将数据集导出到Excel的快速方法

我需要每天从SQLServer导出数据(近一百万)到Excel。 数据正在通过存储过程进行处理,然后将它们放在DataSet上,并尝试使用以下代码进行导出:

Private Sub ExportToExcel(ByVal dtTemp As System.Data.DataTable,ByVal filepath As String)Dim strFileName As String = filepath

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` 

有没有更快的方法呢? 如何将DataSet复制到剪贴板,然后将其粘贴到Excel中?

一种方法是将DataSet保存为XML文件:

 myDataSet.WriteXml("c:\file.xml") 

涉及SQL数据泵(导入导出DTS)有一个更快的方法。 您可以保存一个DTS包(将数据从SQL导出到Excel,每秒大约1000行),然后使用SQL Server代理运行该包。 这样,你不必迭代到所有的行和列,你不需要有一个VB代码。