Das DataGridView-Control gehört sicherlich mit zu den am häufigsten verwendeten Controls in einer Windows-Forms-Anwendung. Heute stellen wir Ihnen eine Funktion vor, mit der sich der komplette Inhalt des DataGridView-Controls in eine Text-Datei exportieren lässt. Die erste Zeile der Textdatei soll hierbei die Feldbeschreibungen erhalten, also die Texte der Spaltenüberschriften. Anschließend folgend dann die einzelnen Datenzeilen. Das Trennzeichen der einzelnen Datenfelder innerhalb einer Datenzeile lässt sich durch Aufruf der überladenen Funktion ebenfalls angeben. Auch können Sie festlegen, dass Textfelder und Datumswerte autom. in Anführungszeichen gespeichert werden. ''' <summary> ''' Speichert den Inhalt eines DataGridView-Controls in eine Textdatei ''' Als Feldtrennzeichen wird das Komma verwendet ''' </summary> ''' <param name="DataGridView">DataGridView-Control</param> ''' <param name="Filename">Pfad+Dateiname der Textdadtei</param> Public Function DataGridView_ExportTXT(ByVal DataGridView As DataGridView, _ ByVal Filename As String) As Boolean Return DataGridView_ExportTXT(DataGridView, Filename, ",", False) End Function ''' <summary> ''' Speichert den Inhalt eines DataGridView-Controls in eine Textdatei ''' </summary> ''' <param name="DataGridView">DataGridView-Control</param> ''' <param name="Filename">Pfad+Dateiname der Textdadtei</param> ''' <param name="FieldSep">Feldtrennzeichen</param> Public Function DataGridView_ExportTXT(ByVal DataGridView As DataGridView, _ ByVal Filename As String, _ ByVal FieldSep As String) As Boolean Return DataGridView_ExportTXT(DataGridView, Filename, FieldSep, False) End Function ''' <summary> ''' Speichert den Inhalt eines DataGridView-Controls in eine Textdatei ''' </summary> ''' <param name="DataGridView">DataGridView-Control</param> ''' <param name="Filename">Pfad+Dateiname der Textdadtei</param> ''' <param name="FieldSep">Feldtrennzeichen</param> ''' <param name="QuoteText">True, wenn Text und Datumsfelder in ''' Anführungszeichen eingeschlossen werden sollen</param> Public Function DataGridView_ExportTXT(ByVal DataGridView As DataGridView, _ ByVal Filename As String, _ ByVal FieldSep As String, _ ByVal QuoteText As Boolean) As Boolean ' Rückgabewert Dim bResult As Boolean = False ' StreamWriter-Objekt Dim oStream As IO.StreamWriter = Nothing Try ' Textdatei zum Schreiben öffnen oStream = My.Computer.FileSystem.OpenTextFileWriter( _ Filename, False, System.Text.Encoding.Default) Catch ex As Exception ' Fehlerausgabe MsgBox("Textdatei konnte nicht erstellt werden!" & vbCrLf & _ ex.Message, MsgBoxStyle.Exclamation) End Try If oStream IsNot Nothing Then Dim i As Integer Try With DataGridView ' 1. Zeile = Feldbeschreibung For i = 1 To .Columns.Count If i > 1 Then oStream.Write(FieldSep) Debug.Print(.Columns(i - 1).ValueType.ToString) oStream.Write(.Columns(i - 1).HeaderText) Next i oStream.WriteLine() ' jetzt die einzelnen Datenzeilen speichern For i = 1 To .RowCount For u As Integer = 1 To .Columns.Count If u > 1 Then oStream.Write(FieldSep) Dim sValue As String If .Columns(u - 1).ValueType Is GetType(String) OrElse _ .Columns(u - 1).ValueType Is GetType(Date) Then ' wenn String oder Datum, Wert ggf. in Anführungszeichen setzen If QuoteText Then sValue = Chr(34) & .Rows(i - 1).Cells(u - 1).Value & Chr(34) Else sValue = .Rows(i - 1).Cells(u - 1).Value End If ElseIf .Columns(u - 1).ValueType Is GetType(Boolean) Then ' Boolean-Werte als 0 oder -1 speichern sValue = IIf(.Rows(i - 1).Cells(u - 1).Value, "-1", "0") Else ' bei numerischen Datentypen mit Nachkommastellen, ' als Dezimaltrennzeichen immer Punkt (.) verwenden ' --> Str(...) sValue = Str(.Rows(i - 1).Cells(u - 1).Value).Trim End If oStream.Write(sValue) Next u oStream.WriteLine() Next i End With ' Rückgabewert: Success bResult = True Catch ex As Exception ' Fehlerausgabe MsgBox("Fehler beim Erstellen der Exportdatei!" & vbCrLf & ex.Message, _ MsgBoxStyle.Exclamation) End Try ' Datei schließen oStream.Close() oStream = Nothing End If ' Rückgabewert der Funktion Return bResult End Function Dieser Tipp wurde bereits 23.117 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. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats September 2024 Dieter Otter Übergabeparameter: String oder Array? Mit der IsArray-Funktion lässt sich prüfen, ob es sich bei einem Übergabeparameter an eine Prozedur um ein Array oder einer "einfachen" Variable handelt. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |