【问题标题】:Fast Way To Export DataSet To Excel in VB.Net在 VB.Net 中将数据集导出到 Excel 的快速方法
【发布时间】: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-server vb.net excel dataset


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      相关资源
      最近更新 更多