diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs index 09c6e3f..e7a6c06 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs @@ -2062,19 +2062,19 @@ if (row1String[0] == '$') { row1 = "$" + - (Int32.Parse(row1String.Substring(1)) + rowsShifted).ToStringLookup(); + (Int32.Parse(row1String.Substring(1)) + rowsShifted).ToInvariantString(); } else - row1 = (Int32.Parse(row1String) + rowsShifted).ToStringLookup(); + row1 = (Int32.Parse(row1String) + rowsShifted).ToInvariantString(); string row2; if (row2String[0] == '$') { row2 = "$" + - (Int32.Parse(row2String.Substring(1)) + rowsShifted).ToStringLookup(); + (Int32.Parse(row2String.Substring(1)) + rowsShifted).ToInvariantString(); } else - row2 = (Int32.Parse(row2String) + rowsShifted).ToStringLookup(); + row2 = (Int32.Parse(row2String) + rowsShifted).ToInvariantString(); sb.Append(useSheetName ? String.Format("'{0}'!{1}:{2}", sheetName, row1, row2) diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Coordinates/XLAddress.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Coordinates/XLAddress.cs index 8d0f040..d9b9a8e 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Coordinates/XLAddress.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Coordinates/XLAddress.cs @@ -207,7 +207,7 @@ { retVal += "$"; } - retVal += _rowNumber.ToStringLookup(); + retVal += _rowNumber.ToInvariantString(); return retVal; } @@ -215,23 +215,23 @@ { if (referenceStyle == XLReferenceStyle.A1) { - return ColumnLetter + _rowNumber.ToStringLookup(); + return ColumnLetter + _rowNumber.ToInvariantString(); } if (referenceStyle == XLReferenceStyle.R1C1) { - return String.Format("R{0}C{1}", _rowNumber.ToStringLookup(), ColumnNumber); + return String.Format("R{0}C{1}", _rowNumber.ToInvariantString(), ColumnNumber); } if (HasWorksheet && Worksheet.Workbook.ReferenceStyle == XLReferenceStyle.R1C1) { - return String.Format("R{0}C{1}", _rowNumber.ToStringLookup(), ColumnNumber); + return String.Format("R{0}C{1}", _rowNumber.ToInvariantString(), ColumnNumber); } - return ColumnLetter + _rowNumber.ToStringLookup(); + return ColumnLetter + _rowNumber.ToInvariantString(); } #endregion #region Methods public string GetTrimmedAddress() { - return _trimmedAddress ?? (_trimmedAddress = ColumnLetter + _rowNumber.ToStringLookup()); + return _trimmedAddress ?? (_trimmedAddress = ColumnLetter + _rowNumber.ToInvariantString()); } @@ -362,13 +362,13 @@ { String address; if (referenceStyle == XLReferenceStyle.A1) - address = String.Format("${0}${1}", ColumnLetter, _rowNumber.ToStringLookup()); + address = String.Format("${0}${1}", ColumnLetter, _rowNumber.ToInvariantString()); else if (referenceStyle == XLReferenceStyle.R1C1) - address = String.Format("R{0}C{1}", _rowNumber.ToStringLookup(), ColumnNumber); + address = String.Format("R{0}C{1}", _rowNumber.ToInvariantString(), ColumnNumber); else if (HasWorksheet && Worksheet.Workbook.ReferenceStyle == XLReferenceStyle.R1C1) - address = String.Format("R{0}C{1}", _rowNumber.ToStringLookup(), ColumnNumber); + address = String.Format("R{0}C{1}", _rowNumber.ToInvariantString(), ColumnNumber); else - address = String.Format("${0}${1}", ColumnLetter, _rowNumber.ToStringLookup()); + address = String.Format("${0}${1}", ColumnLetter, _rowNumber.ToInvariantString()); if (includeSheet) return String.Format("'{0}'!{1}", diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeAddress.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeAddress.cs index 1a02e91..d5b0e94 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeAddress.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeAddress.cs @@ -1,5 +1,6 @@ using System; using System.Diagnostics; +using System.Globalization; using System.Linq; namespace ClosedXML.Excel @@ -64,7 +65,7 @@ else { FirstAddress = XLAddress.Create(worksheet, firstPart + "1"); - LastAddress = XLAddress.Create(worksheet, secondPart + XLHelper.MaxRowNumber.ToStringLookup()); + LastAddress = XLAddress.Create(worksheet, secondPart + XLHelper.MaxRowNumber.ToString(CultureInfo.InvariantCulture)); } } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs index 112221e..a090dfc 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs @@ -396,7 +396,7 @@ foreach (IXLCell c in range.Row(1).Cells()) { if (XLHelper.IsNullOrWhiteSpace(((XLCell)c).InnerText)) - c.Value = GetUniqueName("Column" + co.ToStringLookup()); + c.Value = GetUniqueName("Column" + co.ToInvariantString()); _uniqueNames.Add(c.GetString()); co++; } @@ -410,11 +410,11 @@ if (_uniqueNames.Contains(name)) { Int32 i = 1; - name = originalName + i.ToStringLookup(); + name = originalName + i.ToInvariantString(); while (_uniqueNames.Contains(name)) { i++; - name = originalName + i.ToStringLookup(); + name = originalName + i.ToInvariantString(); } } @@ -446,7 +446,7 @@ foreach (IXLCell c in headersRow.Cells()) { if (XLHelper.IsNullOrWhiteSpace(((XLCell)c).InnerText)) - c.Value = GetUniqueName("Column" + co.ToStringLookup()); + c.Value = GetUniqueName("Column" + co.ToInvariantString()); _uniqueNames.Add(c.GetString()); co++; } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs index 21072b9..70ef083 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs @@ -1580,11 +1580,11 @@ if (context.TableNames.Contains(name)) { var i = 1; - name = tableName + i.ToStringLookup(); + name = tableName + i.ToInvariantString(); while (context.TableNames.Contains(name)) { i++; - name = tableName + i.ToStringLookup(); + name = tableName + i.ToInvariantString(); } } @@ -3282,7 +3282,7 @@ maxColumn = xlWorksheet.Internals.CellsCollection.MaxColumnUsed; var maxRow = xlWorksheet.Internals.CellsCollection.MaxRowUsed; sheetDimensionReference = "A1:" + XLHelper.GetColumnLetterFromNumber(maxColumn) + - maxRow.ToStringLookup(); + maxRow.ToInvariantString(); } if (xlWorksheet.Internals.ColumnsCollection.Count > 0) @@ -3637,7 +3637,7 @@ } if (maxColumn > 0) - row.Spans = new ListValue {InnerText = "1:" + maxColumn.ToStringLookup()}; + row.Spans = new ListValue {InnerText = "1:" + maxColumn.ToInvariantString()}; row.Height = null; row.CustomHeight = null; @@ -3679,7 +3679,7 @@ { foreach (var delCo in kpDel.Value.ToList()) { - var key = XLHelper.GetColumnLetterFromNumber(delCo) + kpDel.Key.ToStringLookup(); + var key = XLHelper.GetColumnLetterFromNumber(delCo) + kpDel.Key.ToInvariantString(); if (!cellsByReference.ContainsKey(key)) continue; row.RemoveChild(cellsByReference[key]); kpDel.Value.Remove(delCo); diff --git a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs index cac055e..449104f 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs @@ -162,18 +162,12 @@ public static class IntegerExtensions { - private static readonly NumberFormatInfo nfi = CultureInfo.InvariantCulture.NumberFormat; - private static readonly Dictionary intToString = new Dictionary(); - public static String ToStringLookup(this Int32 value) + + public static String ToInvariantString(this Int32 value) { - if (!intToString.ContainsKey(value)) - { - intToString.Add(value, value.ToString(nfi)); - } - return intToString[value]; + return value.ToString(CultureInfo.InvariantCulture); } - } public static class FontBaseExtensions