ListView in CSV exportieren mit VB.NET

Ein ListView in CSV exportieren ist mit VB.NET kein Problem. Diese List Views dienen zur Darstellung von Informationen in Windows Anwendungen. Doch diese Daten möchte man oft weiter verarbeiten und somit ist ein CSV Export wichtig.

Daten aus ListView in CSV exportieren mit VB.NET

Die Inhalte eines ListView lassen sich mit wenigen Zeilen Code in die Zwischenablage kopieren. Doch auch ein Export in eine CSV Datei ist mit VB.NET kein Problem. Es werden automatisch die Spalten und Inhalte ausgelesen und somit die CSV generiert.

ListView in CSV exportieren

Um ein ListView in CSV exportieren kann, nutzt man am Besten eine Function in VB.NET. Denn einer Function kann man den Dateinamen der Ausgabe-Datei und der Namen des Listview übergeben werden. Natürlich können die Namen und Pfade auch statisch gesetzt werden, falls man nur eine Liste hat.

Public Function ExportListViewToCSVFile(ByVal outFile As String, ByVal yourlv As ListView) As Boolean

Try

' Ausgabedatei oeffnen
Dim LvExp As New StreamWriter(outFile)
 
' Header schreiben
For i As Integer = 0 To yourlv.Columns.Count - 1
    ' Hochkomma und Anfuehrungszeichen kuerzen
    LvExp.Write("""" & yourlv.Columns(i).Text.Replace("""", """""") & """,")
Next

LvExp.WriteLine()

' Inhalte schreiben
For i As Integer = 0 To yourlv.Items.Count - 1
   For j As Integer = 0 To yourlv.Columns.Count - 1
       ' Hochkomma und Anfuehrungszeichen kuerzen
       LvExp.Write("""" & yourlv.Items(i).SubItems(j).Text.Replace("""", """""")+ """,")
    Next

    LvExp.WriteLine()

Next

LvExp.Close()

Catch ex As Exception
' Error-Handling
    MsgBox(ex.Tostring())
    Return False
End Try

    Return True

End Function

Werden der Function die Parameter korrekt übergeben, werden automatisiert die Inhalte der ListView exportiert und in die angegebene Datei gespeichert. Möchte man dem User nun noch die Möglichkeit geben, die zu exportierende Datei zu wählen, so baut man eine Sub mit einem SaveFileDialog.

Public Sub ExportToCSV()

'SaveFileDialog erstellen und konfigurieren
Dim dlg As New SaveFileDialog
dlg.Filter = "CSV files (*.CSV)|*.csv"
dlg.FilterIndex = 1
dlg.RestoreDirectory = True

'SaveFileDialog oeffnen
If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then

'Wenn function liefert "TRUE" dann...
  If ExportListViewToCSV(dlg.FileName, YourListView) Then

      'Datei oeffnen
      Process.Start(dlg.FileName)

  End If

End If

End Sub

Werden die Parameter korrekt übergeben und der Export des ListView wurde korrekt in eine CSV durchgeführt, so liefert die Function TRUE zurück. Ist das der Fall, so wird die Datei zur Ansicht geöffnet.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments