Skip to content

Commit 21ffc8d

Browse files
authored
Merge pull request #1843 from EPPlusSoftware/bug/issue1839
Fixes issue #1839.
2 parents c869f60 + e274560 commit 21ffc8d

File tree

8 files changed

+17
-9
lines changed

8 files changed

+17
-9
lines changed

src/EPPlus/ConditionalFormatting/ExcelConditionalFormattingIconSetBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ internal void ReadIcon(ExcelConditionalFormattingIconDataBarValue icon, XmlReade
148148
{
149149
var iconValue = xr.GetAttribute("val");
150150

151-
if(ConvertUtil.TryParseNumericString(iconValue, out double numValue))
151+
if(ConvertUtil.TryParseNumericString(iconValue, out double numValue, CultureInfo.InvariantCulture))
152152
{
153153
icon.Value = numValue;
154154
}

src/EPPlus/Drawing/Vml/VmlConvertUtil.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using OfficeOpenXml.Drawing.Controls;
22
using OfficeOpenXml.Utils;
33
using System;
4+
using System.Globalization;
45

56
namespace OfficeOpenXml.Drawing.Vml
67
{
@@ -14,17 +15,17 @@ internal static double GetOpacityFromStringVml(string v)
1415
}
1516
if (v.EndsWith("f", StringComparison.OrdinalIgnoreCase))
1617
{
17-
ConvertUtil.TryParseNumericString(v.Substring(0, v.Length - 1), out double d);
18+
ConvertUtil.TryParseNumericString(v.Substring(0, v.Length - 1), out double d, CultureInfo.InvariantCulture);
1819
return (d / 0x10000) * 100;
1920
}
2021
else if (v.EndsWith("%"))
2122
{
22-
ConvertUtil.TryParseNumericString(v.Substring(0, v.Length - 1), out double d);
23+
ConvertUtil.TryParseNumericString(v.Substring(0, v.Length - 1), out double d, CultureInfo.InvariantCulture);
2324
return d;
2425
}
2526
else
2627
{
27-
ConvertUtil.TryParseNumericString(v.Substring(0, v.Length - 1), out double d);
28+
ConvertUtil.TryParseNumericString(v.Substring(0, v.Length - 1), out double d, CultureInfo.InvariantCulture);
2829
return d * 100;
2930
}
3031
}

src/EPPlus/ExcelWorksheet.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3658,6 +3658,7 @@ internal void SetStyleInner(int row, int col, int styleId)
36583658
{
36593659
var v = GetCoreValueInner(row, col);
36603660
v._value = Workbook.Styles.RoundValueFromNumberFormat(v._value, styleId);
3661+
v._styleId = styleId;
36613662
_values.SetValue(row, col, v);
36623663
}
36633664
}

src/EPPlus/Filter/ExcelFilterItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public ExcelFilterValueItem(string value)
3434
{
3535
Value = value;
3636
Utils.ConvertUtil.TryParseNumericString(value, out _valueDouble, CultureInfo.InvariantCulture);
37-
}
37+
}
3838
/// <summary>
3939
/// A value to be filtered.
4040
/// </summary>

src/EPPlus/Style/RichText/ExcelRichText.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ internal void ReadrPr(XmlReader xr)
355355
VerticalAlign = xr.GetAttribute("val").ToEnum<ExcelVerticalAlignmentFont>(ExcelVerticalAlignmentFont.None);
356356
break;
357357
case "sz":
358-
if (ConvertUtil.TryParseNumericString(xr.GetAttribute("val"), out double num))
358+
if (ConvertUtil.TryParseNumericString(xr.GetAttribute("val"), out double num, CultureInfo.InvariantCulture))
359359
{
360360
Size = Convert.ToSingle(num);
361361
}

src/EPPlus/Table/PivotTable/ExcelPivotTableCacheField.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ private void AddItems(EPPlusReadOnlyList<Object> items, XmlNode itemsNode, Dicti
607607
}
608608
else if (c.LocalName == "n")
609609
{
610-
if (ConvertUtil.TryParseNumericString(c.Attributes["v"].Value, out double num))
610+
if (ConvertUtil.TryParseNumericString(c.Attributes["v"].Value, out double num, CultureInfo.InvariantCulture))
611611
{
612612
items.Add(num);
613613
}

src/EPPlus/XmlHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1470,7 +1470,7 @@ internal static float GetRichTextProperyFloat(XmlNode n)
14701470
{
14711471
if (n != null)
14721472
{
1473-
if (ConvertUtil.TryParseNumericString(n.Attributes["val"].Value, out double num))
1473+
if (ConvertUtil.TryParseNumericString(n.Attributes["val"].Value, out double num, CultureInfo.InvariantCulture))
14741474
{
14751475
return Convert.ToSingle(num);
14761476
}

src/EPPlusTest/Issues/StylingIssues.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,13 @@ public void s1808_2()
362362
//p.Workbook.Worksheets.Add("Copied Sheet", ws);
363363
SaveAndCleanup(p);
364364
}
365-
365+
[TestMethod]
366+
public void i1839()
367+
{
368+
using var p = OpenTemplatePackage("i1839.xlsx");
369+
Assert.AreEqual(288, p.Workbook.Worksheets[0].Cells["E31"].StyleID);
370+
SaveWorkbook("i1839-saved.xlsx", p);
371+
}
366372
public class TestData
367373
{
368374
public int Id { get; set; }

0 commit comments

Comments
 (0)