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.667 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. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Neu! sevCoolbar 3.0 Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access |
||||||||||||||||
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. |