Laden...

Number und date formatting to Excel

Erstellt von ltrader vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.108 Views
L
ltrader Themenstarter:in
60 Beiträge seit 2008
vor 15 Jahren
Number und date formatting to Excel

Hallo,

unsere Applikation liest Datums- und Dezimalwerte aus dem Backend aus und stellt sie in einem Excel sheet dar.

Jetzt stehe ich vor der Frage wie ich am Besten sicherstelle, dass die Darstellung der Werte im Excel Sheet in Bezug auf die im Windows XP/Vista unter „Regional and Language Options“ eingestellten Locales – Dezimalseparatoren, Tausender Trennzeichen, Stunden: Minuten:Sekunden –dargestellt werden.
Leider benimmt sich Excel da manchmal etwas eigensinnig.

Kennt ihr eine Möglichkeit in .NET den Formatierungsstring abhängig von den eingestellten Region Settings auszulesen und sinnvoll für das Formatieren der in Excel anzuzeigenden Werte zu nutzen?

Würdet ihr anders vorgehen?

Entscheidend ist, dass die Formatierung der Werte in Excel identisch mit den unter Regional Settings als Beispiel angezeigten Werten ist.

Grüße

Real programers do not comment their code.
It is hard to write and it should be hard to understand!

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo ltrader,

ist dein Problem, Excel dazu zu bekommen, die Werte richtig zu formatieren oder willst du die Werte in C# richtig formatieren (damit Excel sie versteht)?

Den zweiten Teil kann ich beantworten: String.Format arbeitet standardmäßig mit den Einstellungen in "Regional and Language Options".

herbivore

L
ltrader Themenstarter:in
60 Beiträge seit 2008
vor 15 Jahren

Hallo herbivore,

Den zweiten Teil kann ich beantworten: String.Format arbeitet standardmäßig mit den Einstellungen in "Regional and Language Options".

dachte ich auch, macht ja auch Sinn. Die Bestätigung dass das so ist hilft mir aber. Danke dir.

ist dein Problem, Excel dazu zu bekommen, die Werte richtig zu formatieren oder willst du die Werte in C# richtig formatieren (damit Excel sie versteht)?

Eine Kombination aus beidem ist wichtig um zu gewährleisten, dass das Resultat passt. Dem User ist natürlich wichtig, dass die Formatierungen im Frontend (Excel) stimmen. Was hinter den Kulissen geschieht ist für ihn nebensächlich 😉

Die Sache ist soweit implementiert, dass das Formatieren passen müsste. Um es zu testen werde ich auf meiner Maschine mal sämtliche Ländereinstellungen durchprobieren und die Soll Formatierungen mit den Inst Formatierungen vergleichen. Um das ganze dann automatisiert - regressiontest fähig - zu machen, werde ich mal sehen ob ich in meinem Unit Test die regional settings mit Hilfe von .NET ändern kann. So kann ich dann nach jedem Ändern den format string meiner Funktion abfragen und mit dem Soll wert vergleichen.

Was ich noch herausfinden muss ist, wie man die Regional Settings mit C# ändert. Spontan dachte ich da an System.Environment, das scheint aber so nicht zu gehen.

Viele Grüße

Real programers do not comment their code.
It is hard to write and it should be hard to understand!

L
ltrader Themenstarter:in
60 Beiträge seit 2008
vor 15 Jahren

kurzer Nachtrag:
Vielleicht denke ich auch einfach zu kompliziert und es reicht zum automatisierten Testen, wenn ich auf den CurrentThread einfach eine entsprechend neue CultureInfo Instanz setze. Das sollte ja auf die App die gleiche Wirkung haben, wie wenn ich Windows global die regional settings ändere.

Gruß, ltrader

Real programers do not comment their code.
It is hard to write and it should be hard to understand!