Das nachfolgende Beispiel füllt ein DataGridView-Control mit ein paar Test-Einträgen und exportiert den Inhalt dann per Button-Klick in eine CSV-Datei. Hinweis:
Code für das Testprojekt Public Class Form1 ' Datentabelle Private dt As DataTable ' Trennzeichen in der CSV Datei Private Const COLUMN_SEPERATOR As String = "," Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load With Me CenterToScreen() ' DataTable erstellen, füllen und im DataGridView anzeigen dt = New DataTable() dt = .InitGrid() .DataGridView1.DataSource = dt .Text = "DataGridView Inhalt in CSV Datei exportieren" .Button1.Text = "Export" End With End Sub ''' <summary> ''' Testtabelle erstellen ''' </summary> Private Function InitGrid() As DataTable Dim dt As DataTable dt = New DataTable() Dim r As New Random Dim a() As String = {"Fritz", "Uwe", "Günther", "Boris", "Paul", "Sepp"} Dim b() As String = {"Walther", "Seeler", "Netzer", "Becker", "Breitner", "Meier"} With dt.Columns .Add(New DataColumn("Vorname", GetType(String))) .Add(New DataColumn("Name", GetType(String))) .Add(New DataColumn("Nummer", GetType(Integer))) For n As Integer = 0 To 5 Dim dr As DataRow = dt.NewRow() dr("Vorname") = a(n) dr("Name") = b(n) dr("Nummer") = r.Next(10, 100) dt.Rows.Add(dr) Next End With Return dt End Function ''' <summary> ''' Inhalt des DataGridView in eine durch ein Komma ''' getrennte CSV Datei exportieren ''' </summary> Private Function ExportDataGridContentToCSVFile( _ ByVal Filename As String) As Boolean ' Die Variable Created übernimmt den Kontrollwert, ' ob die Datei angelegt wurde. Dim Created As Boolean = False ' Fehlerüberwachung einschalten Try ' StreamWriter initialisieren Using sw As IO.StreamWriter = New IO.StreamWriter( _ Filename, False, System.Text.Encoding.Unicode) ' Spalten anlegen For n As Integer = 0 To Count sw.Write(dt.Columns(n)) If (n < Count) Then sw.Write(COLUMN_SEPERATOR) End If Next ' Neue Zeile schreiben und... sw.Write(sw.NewLine()) ' ... den Inhalt des Grids in eine Komma ' getrennte Datei speichern. For Each dr As DataRow In dt.Rows() For n As Integer = 0 To Count If Not Convert.IsDBNull(dr(n)) Then sw.Write(dr(n).ToString()) End If If (n < Count) Then sw.Write(COLUMN_SEPERATOR) End If Next ' Neue Zeile anlegen. sw.Write(sw.NewLine()) Next End Using ' Wurde die Datei angelegt wird die Kontrollvariable ' Created mit True initialisiert If IO.File.Exists(Filename) Then Created = True Catch ex As IO.IOException ' Eventuell auftretenden Fehler abfangen MessageBox.Show(ex.Message(), "Info - IOException") Catch ex As Exception MessageBox.Show(ex.Message(), "Info - Exception") End Try ' Funktionsrückgabe Return Created End Function ''' <summary> ''' Anzahl der in der Tabelle vorhanden Spalten ermitteln. ''' </summary> Private ReadOnly Property Count() As Integer Get Return dt.Columns.Count - 1 End Get End Property ''' <summary> ''' Testpfad in dem die CSV Datei gespeichert wird. ''' </summary> Private ReadOnly Property Filename() As String Get Return IO.Path.Combine(Application.StartupPath, "grid_csv.csv") End Get End Property Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Prozeduraufruf mit den anzulegenden Dateinamen Dim IsCreated As Boolean = ExportDataGridContentToCSVFile(Filename) Select Case IsCreated Case True MessageBox.Show(IsCreated.ToString() & _ " [Datei wurde angelegt]", "Info") Case Else MessageBox.Show(IsCreated.ToString() & _ " [Datei konnte nicht angelegt werden]", "Info") End Select End Sub End Class Dieser Tipp wurde bereits 33.615 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. |
||||||||||||||||
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. |