Entwickler-Ecke
IO, XML und Registry - von Excel zu CSV, Beträge werden falsch formatiert
Vegeto - Mi 28.11.12 17:20
Titel: von Excel zu CSV, Beträge werden falsch formatiert
Hallo alle Zusammen,
ich habe ein Problem, bei dem ich nicht mehr weiter komme, habe schon gegooglt, doch nicht's gefunden.
Also ich lade eine Excel Tabelle mittels InterOP in C#, dort will ich die Daten als CSV wieder geben, ist soweit kein Problem funktoniert auch.
Doch ein problem gibt es, also bei der Excel tabelle gibt es eine Spalte Beträge, die mit Komma (,) getrennt werden, genau so wie wir das hier in Deutschland kennen.
Doch wenn ich diese nun in die Csv-Datei schreibe nimmt er statt dem Komma(,) ein Punkt(.).
Weiß vielleicht jemand was ich ändern muss oder schreiben muss?
Habe schon beim Streamwriter in den klammern angegeben, das die Encodierung Default sein soll(so zeigt er mir Umlaute in Excel an). Doch ich schaffe es nicht die komma(,) mit punkt(.) zu erstzen.
Ich freue mich über jede Anregung.
Mit freundlichen Grüßen
Vegeto
Th69 - Mi 28.11.12 18:58
Hallo Vegeto,
wie genau schreibst du denn die CSV-Datei?
Für das Schreiben von Komma statt Punkt ist die Klasse
CultureInfo zuständig (hat also nichts mit dem
Encoding zu tun).
Viele .NET-Methoden haben einen
IFormatProvider als Parameter (von dem dann
CultureInfo abgeleitet ist), so daß du dann z.B. die deutsche "Kultur" übergeben kannst:
C#-Quelltext
1: 2: 3:
| CultureInfo german = new CultureInfo("de-DE"); decimal value = 1.23; string valueWithComma = value.ToString(german); |
Du kannst aber auch den gesamten Thread auf eine Kultur umstellen (dann brauchst du nicht den Parameter jedesmal setzen):
C#-Quelltext
1: 2: 3:
| Thread.CurrentThread.CurrentCulture = german; Thread.CurrentThread.CurrentUICulture = german; |
Standardmäßig wird beim Starten eines .NET-Programms die aktuelle eingestellte Kultur (aus den Windows Systemeinstellungen) übernommen, so daß auf einem deutschen Windows eigentlich schon ein Komma erzeugt werden sollte.
Vegeto - Do 29.11.12 09:47
Danke Th69,
Hat schon gereicht :)
Das .ToString hat gefehlt :)
Lg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!