Datenexport in eine CSV-Datei

Mit diesem Beitrag beschreibe ich die Funktion zum Datenexport in eine CSV-Datei.

Diese Funktion kann auch für Excel-Dateien (XLS) genutzt werden. Statt dem „;“ muss dann Chr(9) verwendet werden.

Nachteil der CSV-Datei:
Vor dem Exportieren der Daten muss man darauf achten, dass in Textfeldern kein Semikolon (;) und kein Zeilenumbruch vorliegen. Am besten Ersetzt man im Text diese Zeichen durch ein Leerzeichen und/oder Komma.

– P_Dateipfad = Eigener Dateipfad z.B. F:/Test/
– P_Dateiname = Eigener Dateiname
_______________________________________________________________________________________________________

Public Function ExportDaten(P_Dateipfad As String, P_Dateiname As String) As String

Dim Dateiname As String = P_Dateipfad.ToString & P_Dateiname.ToString & „.csv“

Dim Meldung As String = „“
Dim Zeilenumbruch As String = Chr(13) & Chr(10)
Dim Ausgabezeile As String = „“

Dim A_Nummer As String = „“
Dim A_Kurzbezeichnung As String = „“
Dim A_Menge As String = „“
Dim A_Einheit As String = „“
Dim A_Preis As String = „“

Dim conn As OleDb.OleDbConnection
Dim cmd As New OleDb.OleDbCommand

If My.Computer.FileSystem.DirectoryExists(P_Dateipfad.ToString) Then

If Not My.Computer.FileSystem.FileExists(Dateiname.ToString) Then
My.Computer.FileSystem.WriteAllText(Dateiname.ToString, „Nummer;Kurzbeschreibung;Menge;Einheit;Preis“ & Zeilenumbruch, True)
Else
Meldung = („Fehler beim erstellen der Datei“)
Return (Meldung)
End If

Dim sql = „SELECT Nummer, Kurzbezeichnung, Menge, Einheit, Preis FROM Artikel;“

conn = New OleDb.OleDbConnection(Module1.db_path)
cmd = New OleDb.OleDbCommand(sql, conn)

conn.Open()

Dim reader = cmd.ExecuteReader()

Try

While (reader.Read)

‚****************************************************************************************
‚**** Zum besseren Verständnis habe ich hier die Daten in Variablen abgelegt.
‚**** Optional können die Daten mit Chr(34) versehen werden. Chr(34) = „“
‚**** Wichtig ist am Ende der Zeilenumbruch Chr(13) & Chr(10).
‚**** Die Feldlänge wird hier nicht berücksichtigt.
‚****************************************************************************************

‚ A_Nummer = Chr(34) & reader(„Nummer“).ToString & Chr(34)
‚ A_Kurzbezeichnung = Chr(34) & reader(„Kurzbezeichnung“).ToString & Chr(34)
‚ A_Menge = Chr(34) & reader(„Menge“).ToString & Chr(34)
‚ A_Einheit = Chr(34) & reader(„Einheit“).ToString & Chr(34)
‚ A_Preis = Chr(34) & reader(„Preis“).ToString & Chr(34)

A_Nummer = reader(„Nummer“).ToString
A_Kurzbezeichnung = reader(„Kurzbezeichnung“).ToString
A_Menge = reader(„Menge“).ToString
A_Einheit = reader(„Einheit“).ToString
A_Preis = reader(„Preis“).ToString

Ausgabezeile = A_Nummer.ToString & „;“ & A_Kurzbezeichnung.ToString & „;“ & A_Menge.ToString & „;“ & A_Einheit.ToString & „;“ & A_Preis.ToString & Zeilenumbruch

My.Computer.FileSystem.WriteAllText(Dateiname.ToString, Ausgabezeile.ToString, True)
End While

Meldung = „Die Daten wurden Exportiert“

Catch ex As Exception

Meldung = „Fehler beim Export“

End Try

conn.Close()

End If

Return (Meldung)

End Function
_______________________________________________________________________________________________________