From e8169af6c899c85e444389ee9b40c1f5cf27ab8c Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 15 Nov 2023 22:10:41 +0100 Subject: [PATCH] Ods: fix numbers --- Elwig/Helpers/Export/Ods.cs | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/Elwig/Helpers/Export/Ods.cs b/Elwig/Helpers/Export/Ods.cs index be056b1..f50cc41 100644 --- a/Elwig/Helpers/Export/Ods.cs +++ b/Elwig/Helpers/Export/Ods.cs @@ -107,10 +107,20 @@ namespace Elwig.Helpers.Export { - - - - + + + + + + + + + + + + + + @@ -253,9 +263,14 @@ namespace Elwig.Helpers.Export { data is short || data is ushort || data is int || data is uint || data is long || data is ulong) { double v = double.Parse(data?.ToString() ?? "0"); - if (isPercent) { - data = $"{v:N1}"; - add = string.Join(" ", add.Split(" ").Select(p => p.StartsWith("table:style-name=") ? "table:style-name=\"perc\"" : p)); + if (units != null && units.Length > 0) { + int n = -1; + switch (units[0]) { + case "%": n = 1; data = $"{v:N1}"; break; + case "°KMW": n = 1; data = $"{v:N1}"; break; + case "°Oe": n = 0; data = $"{v:N0}"; break; + } + if (n >= 0) add = string.Join(" ", add.Split(" ").Select(p => p.StartsWith("table:style-name=") ? $"table:style-name=\"N{n}\"" : p)); } c = $"<{ct} office:value-type=\"float\" calcext:value-type=\"float\" office:value=\"{v.ToString()?.Replace(",", ".")}\"{add}>{data}"; } else {