VB .NET - DataTable nach Excel exportieren

Da ich heute ein DataTable möglichst schnell und einfach als Bericht brauchte, habe ich nach einer Möglichkeit gesucht, dieses DataTable nach Excel zu exportieren.

Irgendwo im Internet habe ich dann folgenen, leicht abgeänderten Schnipsel entdeckt (die Quelle weiß ich leider nicht mehr).

Da ich das sicherlich noch häufiger brauche und andere eventuell auch, poste ich den Code mal hier.

Als Referenz muss das Excel COM Objekt zu den Projekt Referenzen hinzugefügt werden.

''' <summary>
  ''' Export a DataTable into an Excel Datasheet
  ''' </summary>
  ''' <param name="aDataTable"></param>
  ''' <param name="aOutputFilename"></param>
  ''' <returns></returns>
  ''' <remarks></remarks>
  Public Shared Function DatatableToExcel(ByVal aDataTable As DataTable, 
ByVal aOutputFilename As String) As Boolean
 
    Dim app As New Excel.ApplicationClass
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
 
    wb = app.Workbooks.Add()
    ws = wb.ActiveSheet()
 
    Dim dc As DataColumn
    Dim dr As DataRow
    Dim colIndex As Integer
    Dim rowIndex As Integer
 
    ' Columns erstellen
    For Each dc In aDataTable.Columns
      colIndex += 1
      app.Cells(1, colIndex) = dc.ColumnName
    Next
 
    ' Rows hinzufügen
    For Each dr In dt.Rows
      rowIndex += 1
      colIndex = 0
      For Each dc In aDataTable.Columns
        colIndex += 1
        app.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
      Next
    Next
 
    ws.Columns.AutoFit()
 
    wb.SaveAs(aOutputFilename)
 
    wb.Close()
    app.Quit()
 
    wp = nothing
    System.Runtime.InteropServices.Marshal.ReleaseComObject(wp)
    app = nothing
    System.Runtime.InteropServices.Marshal.ReleaseComObject(app)
 
    GC.Collect()
    GC.WaitForPendingFinalizers()
 
    Return True
  End Function

Update am 01.12.2009:

Da ich immer häufiger auf die obigen Funktionen zugreife, habe ich meine Klasse ExcelTools mittlerweile etwas ergänzt. Wer möchte, kann sich den Quellcode hier herunter laden.


0 Antworten zu VB .NET - DataTable nach Excel exportieren

  1. Bisher gibt es keine Kommentare.