diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMax.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMax.cs index af2a1cd..64614d8 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMax.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMax.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace ClosedXML.Excel { @@ -21,7 +18,7 @@ } public void Maximum(XLCFContentType type, Double value, XLColor color) { - Maximum(type, value.ToString(), color); + Maximum(type, value.ToInvariantString(), color); } public void HighestValue(XLColor color) { diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMid.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMid.cs index 85ec2b5..13c31ec 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMid.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMid.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace ClosedXML.Excel { @@ -21,7 +18,7 @@ } public IXLCFColorScaleMax Midpoint(XLCFContentType type, Double value, XLColor color) { - return Midpoint(type, value.ToString(), color); + return Midpoint(type, value.ToInvariantString(), color); } public void Maximum(XLCFContentType type, String value, XLColor color) { @@ -29,7 +26,7 @@ } public void Maximum(XLCFContentType type, Double value, XLColor color) { - Maximum(type, value.ToString(), color); + Maximum(type, value.ToInvariantString(), color); } public void HighestValue(XLColor color) { diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMin.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMin.cs index 9da4137..0c33c04 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMin.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFColorScaleMin.cs @@ -22,7 +22,7 @@ } public IXLCFColorScaleMid Minimum(XLCFContentType type, Double value, XLColor color) { - return Minimum(type, value.ToString(), color); + return Minimum(type, value.ToInvariantString(), color); } public IXLCFColorScaleMid LowestValue(XLColor color) diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMax.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMax.cs index 4664b42..cfedb03 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMax.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMax.cs @@ -20,7 +20,7 @@ } public void Maximum(XLCFContentType type, Double value) { - Maximum(type, value.ToString()); + Maximum(type, value.ToInvariantString()); } public void HighestValue() diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMin.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMin.cs index d57f403..11770f8 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMin.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFDataBarMin.cs @@ -21,7 +21,7 @@ } public IXLCFDataBarMax Minimum(XLCFContentType type, Double value) { - return Minimum(type, value.ToString()); + return Minimum(type, value.ToInvariantString()); } public IXLCFDataBarMax LowestValue() diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFIconSet.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFIconSet.cs index 4b9bab1..6210197 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFIconSet.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLCFIconSet.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace ClosedXML.Excel { @@ -21,7 +18,7 @@ } public IXLCFIconSet AddValue(XLCFIconSetOperator setOperator, Double value, XLCFContentType type) { - return AddValue(setOperator, value.ToString(), type); + return AddValue(setOperator, value.ToInvariantString(), type); } } } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs index 2569b1d..d42b9fc 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs @@ -238,58 +238,58 @@ public IXLStyle WhenEquals(Double value) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Operator = XLCFOperator.Equal; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; } public IXLStyle WhenNotEquals(Double value) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Operator = XLCFOperator.NotEqual; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; } public IXLStyle WhenGreaterThan(Double value) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Operator = XLCFOperator.GreaterThan; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; } public IXLStyle WhenLessThan(Double value) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Operator = XLCFOperator.LessThan; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; } public IXLStyle WhenEqualOrGreaterThan(Double value) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Operator = XLCFOperator.EqualOrGreaterThan; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; } public IXLStyle WhenEqualOrLessThan(Double value) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Operator = XLCFOperator.EqualOrLessThan; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; } public IXLStyle WhenBetween(Double minValue, Double maxValue) - { - Values.Initialize(new XLFormula { Value = minValue.ToString() }); - Values.Add(new XLFormula { Value = maxValue.ToString() }); + { + Values.Initialize(new XLFormula (minValue)); + Values.Add(new XLFormula(maxValue)); Operator = XLCFOperator.Between; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; } public IXLStyle WhenNotBetween(Double minValue, Double maxValue) { - Values.Initialize(new XLFormula { Value = minValue.ToString() }); - Values.Add(new XLFormula { Value = maxValue.ToString() }); + Values.Initialize(new XLFormula(minValue)); + Values.Add(new XLFormula(maxValue)); Operator = XLCFOperator.NotBetween; ConditionalFormatType = XLConditionalFormatType.CellIs; return Style; @@ -314,7 +314,7 @@ } public IXLStyle WhenIsTop(Int32 value, XLTopBottomType topBottomType = XLTopBottomType.Items) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Percent = topBottomType == XLTopBottomType.Percent; ConditionalFormatType = XLConditionalFormatType.Top10; Bottom = false; @@ -322,7 +322,7 @@ } public IXLStyle WhenIsBottom(Int32 value, XLTopBottomType topBottomType = XLTopBottomType.Items) { - Values.Initialize(new XLFormula { Value = value.ToString() }); + Values.Initialize(new XLFormula(value)); Percent = topBottomType == XLTopBottomType.Percent; ConditionalFormatType = XLConditionalFormatType.Top10; Bottom = true; diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs index 33dd7d2..2ff7a44 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Misc/XLFormula.cs @@ -16,6 +16,21 @@ IsFormula = defaultFormula.IsFormula; } + public XLFormula(String value) + { + Value = value; + } + + public XLFormula(double value) + { + Value = value.ToInvariantString(); + } + + public XLFormula(int value) + { + Value = value.ToInvariantString(); + } + internal String _value; public String Value { diff --git a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs index dbc2e57..4d36490 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs @@ -171,6 +171,16 @@ } + public static class DoubleExtensions + { + //All numbers are stored in XL files as invarient culture this is just a easy helper + public static String ToInvariantString(this Double value) + { + return value.ToString(CultureInfo.InvariantCulture); + } + + } + public static class FontBaseExtensions { @@ -241,14 +251,6 @@ return XDocument.Load(reader); } } - - //public static void SaveToStream(this XDocument document, Stream stream) - //{ - // using (XmlReader reader = XmlReader.Open(stream)) - // { - // return XDocument.Load(reader); - // } - //} } public static class EnumerableExtensions diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx index 9334c2a..a7d8b81 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx Binary files differ