StreamWriter und CSV

Hi,

…und da habe ich gleich noch eine Frage…

Ich möchte bestimmte Werte aus der Datenbank in ein CSV-File schreiben. Das hat auch bisher bestens geklappt, nur hatte er Schwierigkeiten mit der Ausgabe von Umlauten (Ä,Ö,Ü) … jetzt habe ich das Encodiung auf Unicode umgestellt. Nun schreibt er mir zwar die Umlaute richtig, doch dafür interpretiert mir Excel die ‚;‘ nicht mehr als Spaltenwechsel sondern schreibt alles in die erste Zelle einer Zeile :frowning:

Meine Code sah ohne die Berücksichtigung der Sonderzeichen folgendermaßen aus:

public static string WriteCSV (string name, object data, string path)
{
FileStream outStream = new FileStream(path+name,FileMode.OpenOrCreate);

using (StreamWriter sw = new StreamWriter(outStream))
{
sw.WriteLine(data);
}
return path + name;
}

und wie gesagt, da hat mit den Spalten auch noch alles geklappt. Jetzt hab ich folgendermaßen abgeändert:
public static string WriteCSV (string name, object data, string path)
{
FileStream outStream = new FileStream(path+name,FileMode.OpenOrCreate);

using (StreamWriter sw = new StreamWriter(outStream, System.Text.Encoding.Unicode))
{
sw.WriteLine(data);
}
return path + name;
}

und schon bekomme ich Probleme mit den Spalten in Excel. Kann mir jemand hier weiterhelfen?

Schon mal vielen Dank und Grüße
Chris

Hi!

Wenn ich das richtig in Erinnerung habe, dann mag Excel beim Textdateiimport keine Unicode-Dateien, sondern z.B. welche mit Windows-ANSI-Encoding.
Das bekommst Du am einfachsten hin, wenn Du statt Encoding.Unicode schreibst: Encoding.Default

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Wenn ich das richtig in Erinnerung habe, dann mag Excel beim
Textdateiimport keine Unicode-Dateien, sondern z.B. welche mit
Windows-ANSI-Encoding.
Das bekommst Du am einfachsten hin, wenn Du statt
Encoding.Unicode schreibst: Encoding.Default

Gruß,
Martin

Hi,

Besten Dank :smile: so hat’s funktioniert und wieder ist ein Mensch glücklich :smiley:

Grüße
Chris