
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