vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Controls · DataGrid & DataGridView   |   VB-Versionen: VB2005, VB200811.11.08
Inhalt eines DataGridView in Excel ausgeben

Mit diesem Code wird der Inhalt eines DataGridViews mit wenigen Zeilen Code in ein Excel-Arbeitsblatt übertragen.

Autor:   Frank Uwe PollehnBewertung:     [ Jetzt bewerten ]Views:  27.330 
ohne HomepageSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgende Funktion zeigt, wie sich der Inhalt eines DataGridView-Controls mit wenigen Zeilen Code in ein Excel-Arbeitsblatt übertragen lässt.

Die Funktion lässt sich bspw. dazu verwenden, Daten aus einem DataGrid zu drucken ohne einen Mörderaufwand zu betreiben, da es mit extrem wenig Code geht.

Einen Nachteil hat diese Vorgehensweise allerdings: Der User muss Office auf seinem Rechner installiert haben.

Fügen Sie Ihrem Projekt zunächst den Verweis auf Excel hinzu (Projekt - Verweise - COM - Microsoft 11.0 Excel Object Library (für Excel 2003)).

Und hier der Code der Funktion dgbToExcel.

Imports Microsoft.Office.Interop
''' <summary>
''' Inhalt eines DataGridView-Controls nach Excel exportieren
''' </summary>
''' <param name="dgv">DataGridView-Control</param>
''' <param name="FillHiddenMode">Optional. Legt fest, ob Excel sofort angezeigt
''' werden soll oder erst nachdem die Daten übertragen wurde.</param>
''' <returns>True, wenn Export erfolgreich, andernfalls False</returns>
''' <remarks>Excel muss auf dem Zielsystem installiert sein</remarks>
Public Function dgvToExcel(ByVal dgv As DataGridView, _
  Optional ByVal FillHiddenMode As Boolean = True) As Boolean
 
  Try
    Dim Excel As Excel.Application    ' Verweis auf Excel-Application
    Dim EXMappe As Excel.Workbook     ' Excel Arbeitsmappe
    Dim EXBlatt As Excel.Worksheet    ' Excel Blatt ( Die angezeigte Tabelle)
    Dim AZ As Integer                 ' Nimmt die Zeilenanzahl auf
 
    ' neue Instanz von Excel erstellen und ggf. sofort anzeigen
    Excel = New Excel.Application()
    Excel.Visible = Not FillHiddenMode
 
    ' neue Mappe hinzufügen
    EXMappe = Excel.Workbooks.Add()
 
    ' aktuelles Blatt anzeigen
    EXBlatt = EXMappe.ActiveSheet
    With dgv
      ' Spaltenüberschriften übertragen
      For Spalte As Integer = 0 To .Columns.Count - 1
        EXBlatt.Cells(1, Spalte + 1).Value = .Columns(Spalte).HeaderText
      Next
 
      ' Anzahl Datenzeilen
      AZ = .Rows.Count
      If .AllowUserToAddRows = True Then
        ' Leerzeile abziehen
        AZ = AZ - 1
      End If
 
      ' Datenzeilen übertragen
      For Zeile As Integer = 0 To AZ - 1
        For Spalte As Integer = 0 To .Columns.Count - 1
          EXBlatt.Cells(Zeile + 2, Spalte + 1).Value() = _
            .Rows(Zeile).Cells(Spalte).Value.ToString
        Next
      Next
    End With
 
    ' Excel jetzt anzeigen
    If FillHiddenMode Then Excel.Visible = True
    Return True
 
  Catch ex As Exception
    ' Fehler
    MsgBox("Fehler beim Übertragen der Daten nach Excel!" & vbCrLf & _
      ex.Message, MsgBoxStyle.Exclamation)
    Return False
  End Try
 
End Function

Beispiel für den Aufruf:

' DataGridView-Inhalt nach Excel exportieren
Me.Cursor = Cursors.WaitCursor
dgvToExcel(DataGridView1)
Me.Cursor = Cursors.Default

Dieser Tipp wurde bereits 27.330 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel