diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheets.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheets.cs index 90e3839..6b4da79 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheets.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheets.cs @@ -12,7 +12,7 @@ #region Constructor private readonly XLWorkbook m_workbook; - private readonly Dictionary m_worksheets = new Dictionary(); + private readonly Dictionary _worksheets = new Dictionary(); #endregion @@ -31,7 +31,7 @@ public IEnumerator GetEnumerator() { - return ((IEnumerable)m_worksheets.Values).GetEnumerator(); + return ((IEnumerable)_worksheets.Values).GetEnumerator(); } #endregion @@ -41,13 +41,13 @@ public int Count { [DebuggerStepThrough] - get { return m_worksheets.Count; } + get { return _worksheets.Count; } } public bool TryGetWorksheet(string sheetName, out IXLWorksheet worksheet) { XLWorksheet w; - if (m_worksheets.TryGetValue(sheetName, out w)) + if (_worksheets.TryGetValue(sheetName, out w)) { worksheet = w; return true; @@ -59,10 +59,10 @@ public IXLWorksheet Worksheet(String sheetName) { XLWorksheet w; - if (m_worksheets.TryGetValue(sheetName, out w)) + if (_worksheets.TryGetValue(sheetName, out w)) return w; - var wss = m_worksheets.Where(ws => ws.Key.ToLower().Equals(sheetName.ToLower())); + var wss = _worksheets.Where(ws => ws.Key.ToLower().Equals(sheetName.ToLower())); if (wss.Any()) return wss.First().Value; @@ -72,7 +72,7 @@ public IXLWorksheet Worksheet(Int32 position) { - int wsCount = m_worksheets.Values.Count(w => w.Position == position); + int wsCount = _worksheets.Values.Count(w => w.Position == position); if (wsCount == 0) throw new Exception("There isn't a worksheet associated with that position."); @@ -82,33 +82,34 @@ "Can't retrieve a worksheet because there are multiple worksheets associated with that position."); } - return m_worksheets.Values.Single(w => w.Position == position); + return _worksheets.Values.Single(w => w.Position == position); } public IXLWorksheet Add(String sheetName) { var sheet = new XLWorksheet(sheetName, m_workbook); - m_worksheets.Add(sheetName, sheet); - sheet._position = m_worksheets.Count; + _worksheets.Add(sheetName, sheet); + sheet._position = _worksheets.Count; return sheet; } public IXLWorksheet Add(String sheetName, Int32 position) { + _worksheets.Values.Where(w => w._position >= position).ForEach(w => w._position += 1); var sheet = new XLWorksheet(sheetName, m_workbook); - m_worksheets.Add(sheetName, sheet); + _worksheets.Add(sheetName, sheet); sheet._position = position; return sheet; } public void Delete(String sheetName) { - Delete(m_worksheets[sheetName].Position); + Delete(_worksheets[sheetName].Position); } public void Delete(Int32 position) { - int wsCount = m_worksheets.Values.Count(w => w.Position == position); + int wsCount = _worksheets.Values.Count(w => w.Position == position); if (wsCount == 0) throw new Exception("There isn't a worksheet associated with that index."); @@ -116,17 +117,17 @@ throw new Exception( "Can't delete the worksheet because there are multiple worksheets associated with that index."); - var ws = m_worksheets.Values.Single(w => w.Position == position); + var ws = _worksheets.Values.Single(w => w.Position == position); if (!StringExtensions.IsNullOrWhiteSpace(ws.RelId) && !Deleted.Contains(ws.RelId)) Deleted.Add(ws.RelId); - m_worksheets.RemoveAll(w => w.Position == position); - m_worksheets.Values.Where(w => w.Position > position).ForEach(w => (w)._position -= 1); + _worksheets.RemoveAll(w => w.Position == position); + _worksheets.Values.Where(w => w.Position > position).ForEach(w => (w)._position -= 1); } IEnumerator IEnumerable.GetEnumerator() { - return m_worksheets.Values.Cast().GetEnumerator(); + return _worksheets.Values.Cast().GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() @@ -152,11 +153,11 @@ public void Rename(String oldSheetName, String newSheetName) { - if (StringExtensions.IsNullOrWhiteSpace(oldSheetName) || !m_worksheets.ContainsKey(oldSheetName)) return; + if (StringExtensions.IsNullOrWhiteSpace(oldSheetName) || !_worksheets.ContainsKey(oldSheetName)) return; - var ws = m_worksheets[oldSheetName]; - m_worksheets.Remove(oldSheetName); - m_worksheets.Add(newSheetName, ws); + var ws = _worksheets[oldSheetName]; + _worksheets.Remove(oldSheetName); + _worksheets.Add(newSheetName, ws); } } } \ No newline at end of file diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/ClosedXML_Tests.csproj b/ClosedXML/ClosedXML/ClosedXML_Tests/ClosedXML_Tests.csproj index 324d39d..9f91586 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/ClosedXML_Tests.csproj +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/ClosedXML_Tests.csproj @@ -142,7 +142,6 @@ - diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Examples/MiscTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Examples/MiscTests.cs index faa489f..cd6283a 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Examples/MiscTests.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Examples/MiscTests.cs @@ -108,11 +108,6 @@ TestHelper.RunTestExample(@"Misc\MergeMoves.xlsx"); } [TestMethod] - public void MultipleSheets() - { - TestHelper.RunTestExample(@"Misc\MultipleSheets.xlsx"); - } - [TestMethod] public void Outline() { TestHelper.RunTestExample(@"Misc\Outline.xlsx"); diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs index 2ad2ef2..d3ff18b 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs @@ -9,7 +9,7 @@ [TestClass()] public class XLWorksheetTests { - [TestMethod()] + [TestMethod] public void MergedRanges() { var ws = new XLWorkbook().Worksheets.Add("Sheet1"); @@ -21,6 +21,61 @@ Assert.AreEqual("A1:B2", ws.MergedRanges.First().RangeAddress.ToStringRelative()); Assert.AreEqual("D2:E2", ws.MergedRanges.Last().RangeAddress.ToStringRelative()); } + + [TestMethod] + public void InsertingSheets1() + { + var wb = new XLWorkbook(); + wb.Worksheets.Add("Sheet1"); + wb.Worksheets.Add("Sheet2"); + wb.Worksheets.Add("Sheet3"); + Assert.AreEqual("Sheet1", wb.Worksheet(1).Name); + Assert.AreEqual("Sheet2", wb.Worksheet(2).Name); + Assert.AreEqual("Sheet3", wb.Worksheet(3).Name); + } + + [TestMethod] + public void InsertingSheets2() + { + var wb = new XLWorkbook(); + wb.Worksheets.Add("Sheet2"); + wb.Worksheets.Add("Sheet1", 1); + wb.Worksheets.Add("Sheet3"); + + Assert.AreEqual("Sheet1", wb.Worksheet(1).Name); + Assert.AreEqual("Sheet2", wb.Worksheet(2).Name); + Assert.AreEqual("Sheet3", wb.Worksheet(3).Name); + } + + [TestMethod] + public void InsertingSheets3() + { + var wb = new XLWorkbook(); + wb.Worksheets.Add("Sheet3"); + wb.Worksheets.Add("Sheet2", 1); + wb.Worksheets.Add("Sheet1", 1); + + + Assert.AreEqual("Sheet1", wb.Worksheet(1).Name); + Assert.AreEqual("Sheet2", wb.Worksheet(2).Name); + Assert.AreEqual("Sheet3", wb.Worksheet(3).Name); + } + + [TestMethod] + public void DeletingSheets1() + { + var wb = new XLWorkbook(); + wb.Worksheets.Add("Sheet3"); + wb.Worksheets.Add("Sheet2"); + wb.Worksheets.Add("Sheet1", 1); + + wb.Worksheet("Sheet3").Delete(); + + Assert.AreEqual("Sheet1", wb.Worksheet(1).Name); + Assert.AreEqual("Sheet2", wb.Worksheet(2).Name); + Assert.AreEqual(2, wb.Worksheets.Count); + } + } }