diff --git a/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/Excel/Cells/XLCell.cs index 1338dad..87e2ac9 100644 --- a/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/Excel/Cells/XLCell.cs @@ -851,7 +851,7 @@ { double dTest; if (Double.TryParse(_cellValue, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out dTest)) - _cellValue = dTest.ToString(CultureInfo.InvariantCulture); + _cellValue = dTest.ToInvariantString(); else { throw new ArgumentException( @@ -865,7 +865,7 @@ if (_dataType == XLCellValues.Boolean) _cellValue = (_cellValue != "0").ToString(); else if (_dataType == XLCellValues.TimeSpan) - _cellValue = BaseDate.Add(GetTimeSpan()).ToOADate().ToString(CultureInfo.InvariantCulture); + _cellValue = BaseDate.Add(GetTimeSpan()).ToOADate().ToInvariantString(); } } diff --git a/ClosedXML/Excel/Coordinates/XLAddress.cs b/ClosedXML/Excel/Coordinates/XLAddress.cs index d9b9a8e..cdd0703 100644 --- a/ClosedXML/Excel/Coordinates/XLAddress.cs +++ b/ClosedXML/Excel/Coordinates/XLAddress.cs @@ -54,7 +54,7 @@ columnLetter = cellAddressString.Substring(startPos, rowPos); } - rowNumber = int.Parse(cellAddressString.Substring(rowPos + 1), XLHelper.NumberFormatForParse); + rowNumber = int.Parse(cellAddressString.Substring(rowPos + 1), XLHelper.NumberStyle, XLHelper.ParseCulture); } else { @@ -67,7 +67,7 @@ columnLetter = cellAddressString.Substring(startPos, rowPos); } - rowNumber = Int32.Parse(cellAddressString.Substring(rowPos), XLHelper.NumberFormatForParse); + rowNumber = Int32.Parse(cellAddressString.Substring(rowPos), XLHelper.NumberStyle, XLHelper.ParseCulture); } return new XLAddress(worksheet, rowNumber, columnLetter, fixedRow, fixedColumn); } @@ -142,7 +142,7 @@ _fixedColumn = fixedColumn; _fixedRow = fixedRow; - + } #endregion #region Properties @@ -380,4 +380,4 @@ public String UniqueId { get { return RowNumber.ToString("0000000") + ColumnNumber.ToString("00000"); } } } -} \ No newline at end of file +} diff --git a/ClosedXML/Excel/DataValidation/XLDateCriteria.cs b/ClosedXML/Excel/DataValidation/XLDateCriteria.cs index 792e6b0..8962b0a 100644 --- a/ClosedXML/Excel/DataValidation/XLDateCriteria.cs +++ b/ClosedXML/Excel/DataValidation/XLDateCriteria.cs @@ -12,51 +12,51 @@ public void EqualTo(DateTime value) { - dataValidation.Value = value.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.Value = value.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.EqualTo; } public void NotEqualTo(DateTime value) { - dataValidation.Value = value.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.Value = value.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.NotEqualTo; } public void GreaterThan(DateTime value) { - dataValidation.Value = value.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.Value = value.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.GreaterThan; } public void LessThan(DateTime value) { - dataValidation.Value = value.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.Value = value.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.LessThan; } public void EqualOrGreaterThan(DateTime value) { - dataValidation.Value = value.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.Value = value.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.EqualOrGreaterThan; } public void EqualOrLessThan(DateTime value) { - dataValidation.Value = value.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.Value = value.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.EqualOrLessThan; } public void Between(DateTime minValue, DateTime maxValue) { - dataValidation.MinValue = minValue.ToOADate().ToString(CultureInfo.InvariantCulture); - dataValidation.MaxValue = maxValue.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.MinValue = minValue.ToOADate().ToInvariantString(); + dataValidation.MaxValue = maxValue.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.Between; } public void NotBetween(DateTime minValue, DateTime maxValue) { - dataValidation.MinValue = minValue.ToOADate().ToString(CultureInfo.InvariantCulture); - dataValidation.MaxValue = maxValue.ToOADate().ToString(CultureInfo.InvariantCulture); + dataValidation.MinValue = minValue.ToOADate().ToInvariantString(); + dataValidation.MaxValue = maxValue.ToOADate().ToInvariantString(); dataValidation.Operator = XLOperator.NotBetween; } } diff --git a/ClosedXML/Excel/Ranges/XLRangeAddress.cs b/ClosedXML/Excel/Ranges/XLRangeAddress.cs index d5b0e94..ddf27f4 100644 --- a/ClosedXML/Excel/Ranges/XLRangeAddress.cs +++ b/ClosedXML/Excel/Ranges/XLRangeAddress.cs @@ -65,7 +65,7 @@ else { FirstAddress = XLAddress.Create(worksheet, firstPart + "1"); - LastAddress = XLAddress.Create(worksheet, secondPart + XLHelper.MaxRowNumber.ToString(CultureInfo.InvariantCulture)); + LastAddress = XLAddress.Create(worksheet, secondPart + XLHelper.MaxRowNumber.ToInvariantString()); } } diff --git a/ClosedXML/Excel/Ranges/XLRangeColumn.cs b/ClosedXML/Excel/Ranges/XLRangeColumn.cs index 77fc1ba..50841a9 100644 --- a/ClosedXML/Excel/Ranges/XLRangeColumn.cs +++ b/ClosedXML/Excel/Ranges/XLRangeColumn.cs @@ -2,7 +2,7 @@ { using System; using System.Linq; - + internal class XLRangeColumn : XLRangeBase, IXLRangeColumn { @@ -242,7 +242,7 @@ else if (thisCell.DataType == XLCellValues.TimeSpan) comparison = thisCell.GetTimeSpan().CompareTo(otherCell.GetTimeSpan()); else - comparison = Double.Parse(thisCell.InnerText).CompareTo(Double.Parse(otherCell.InnerText)); + comparison = Double.Parse(thisCell.InnerText, XLHelper.NumberStyle, XLHelper.ParseCulture).CompareTo(Double.Parse(otherCell.InnerText, XLHelper.NumberStyle, XLHelper.ParseCulture)); } else if (e.MatchCase) comparison = String.Compare(thisCell.GetString(), otherCell.GetString(), true); @@ -319,7 +319,7 @@ public IXLTable AsTable() { using (var asRange = AsRange()) - return asRange.AsTable(); + return asRange.AsTable(); } public IXLTable AsTable(string name) diff --git a/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/Excel/XLWorkbook_Load.cs index 3a1aeb3..21c7cf9 100644 --- a/ClosedXML/Excel/XLWorkbook_Load.cs +++ b/ClosedXML/Excel/XLWorkbook_Load.cs @@ -951,7 +951,7 @@ else if (cell.DataType == CellValues.Date) { if (!XLHelper.IsNullOrWhiteSpace(cell.CellValue.Text)) - xlCell._cellValue = Double.Parse(cell.CellValue.Text, CultureInfo.InvariantCulture).ToInvariantString(); + xlCell._cellValue = Double.Parse(cell.CellValue.Text, XLHelper.NumberStyle, XLHelper.ParseCulture).ToInvariantString(); xlCell._dataType = XLCellValues.DateTime; } else if (cell.DataType == CellValues.Boolean) @@ -962,7 +962,7 @@ else if (cell.DataType == CellValues.Number) { if (!XLHelper.IsNullOrWhiteSpace(cell.CellValue.Text)) - xlCell._cellValue = Double.Parse(cell.CellValue.Text, CultureInfo.InvariantCulture).ToInvariantString(); + xlCell._cellValue = Double.Parse(cell.CellValue.Text, XLHelper.NumberStyle, XLHelper.ParseCulture).ToInvariantString(); if (s == null) { xlCell._dataType = XLCellValues.Number; diff --git a/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/Excel/XLWorkbook_Save.cs index 172a843..19fdd69 100644 --- a/ClosedXML/Excel/XLWorkbook_Save.cs +++ b/ClosedXML/Excel/XLWorkbook_Save.cs @@ -1640,7 +1640,7 @@ { var vTDouble1 = new VTDouble { - Text = p.GetValue().ToString(CultureInfo.InvariantCulture) + Text = p.GetValue().ToInvariantString() }; customDocumentProperty.AppendChild(vTDouble1); } @@ -2381,10 +2381,10 @@ var dm = ds.Margins; if (!dm.Automatic) retVal.Inset = String.Format("{0}in,{1}in,{2}in,{3}in", - dm.Left.ToString(CultureInfo.InvariantCulture), - dm.Top.ToString(CultureInfo.InvariantCulture), - dm.Right.ToString(CultureInfo.InvariantCulture), - dm.Bottom.ToString(CultureInfo.InvariantCulture)); + dm.Left.ToInvariantString(), + dm.Top.ToInvariantString(), + dm.Right.ToInvariantString(), + dm.Bottom.ToInvariantString()); return retVal; } @@ -2440,10 +2440,10 @@ sb.Append(";"); sb.Append("width:"); - sb.Append(Math.Round(c.Style.Size.Width * 7.5, 2).ToString(CultureInfo.InvariantCulture)); + sb.Append(Math.Round(c.Style.Size.Width * 7.5, 2).ToInvariantString()); sb.Append("pt;"); sb.Append("height:"); - sb.Append(Math.Round(c.Style.Size.Height, 2).ToString(CultureInfo.InvariantCulture)); + sb.Append(Math.Round(c.Style.Size.Height, 2).ToInvariantString()); sb.Append("pt;"); sb.Append("z-index:"); @@ -3913,7 +3913,7 @@ var timeSpan = opCell.GetTimeSpan(); var cellValue = new CellValue(); cellValue.Text = - XLCell.BaseDate.Add(timeSpan).ToOADate().ToString(CultureInfo.InvariantCulture); + XLCell.BaseDate.Add(timeSpan).ToOADate().ToInvariantString(); cell.CellValue = cellValue; } else if (dataType == XLCellValues.DateTime || dataType == XLCellValues.Number) @@ -3921,7 +3921,7 @@ if (!XLHelper.IsNullOrWhiteSpace(opCell.InnerText)) { var cellValue = new CellValue(); - cellValue.Text = Double.Parse(opCell.InnerText, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture); + cellValue.Text = Double.Parse(opCell.InnerText, XLHelper.NumberStyle, XLHelper.ParseCulture).ToInvariantString(); cell.CellValue = cellValue; } } diff --git a/ClosedXML/XLHelper.cs b/ClosedXML/XLHelper.cs index b2bafb8..8729fef 100644 --- a/ClosedXML/XLHelper.cs +++ b/ClosedXML/XLHelper.cs @@ -22,10 +22,9 @@ public const Double Epsilon = 1e-10; private const Int32 TwoT26 = 26*26; - internal static readonly NumberFormatInfo NumberFormatForParse = CultureInfo.InvariantCulture.NumberFormat; internal static readonly Graphics Graphic = Graphics.FromImage(new Bitmap(200, 200)); internal static readonly Double DpiX = Graphic.DpiX; - internal static readonly NumberStyles NumberStyle = NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite; + internal static readonly NumberStyles NumberStyle = NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowExponent; internal static readonly CultureInfo ParseCulture = CultureInfo.InvariantCulture; internal static readonly Regex A1SimpleRegex = new Regex( @@ -70,7 +69,7 @@ //Extra check because we allow users to pass row col positions in as strings if (columnLetter[0] <= '9') { - retVal = Int32.Parse(columnLetter, NumberFormatForParse); + retVal = Int32.Parse(columnLetter, XLHelper.NumberStyle, XLHelper.ParseCulture); return retVal; } @@ -166,7 +165,7 @@ public static Boolean IsValidRangeAddress(IXLRangeAddress rangeAddress) { - return !rangeAddress.IsInvalid + return !rangeAddress.IsInvalid && rangeAddress.FirstAddress.RowNumber >= 1 && rangeAddress.LastAddress.RowNumber <= MaxRowNumber && rangeAddress.FirstAddress.ColumnNumber >= 1 && rangeAddress.LastAddress.ColumnNumber <= MaxColumnNumber && rangeAddress.FirstAddress.RowNumber <= rangeAddress.LastAddress.RowNumber @@ -301,4 +300,4 @@ return (DateTime)Convert.ChangeType(v, typeof(DateTime)); } } -} \ No newline at end of file +}