diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs index 91b640d..dda7b7a 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs @@ -1359,9 +1359,13 @@ public IXLRangeRows RowsUsed(Boolean includeFormats = false) { var rows = new XLRangeRows(); - foreach(var row in RangeUsed(includeFormats).Rows().Where(r=>!r.IsEmpty(includeFormats))) + var rangeUsed = RangeUsed(includeFormats); + if (rangeUsed != null) { - rows.Add(row); + foreach (var row in rangeUsed.Rows().Where(r => !r.IsEmpty(includeFormats))) + { + rows.Add(row); + } } return rows; } @@ -1369,9 +1373,13 @@ public IXLRangeColumns ColumnsUsed(Boolean includeFormats = false) { var columns = new XLRangeColumns(); - foreach(var column in RangeUsed(includeFormats).Columns().Where(r=>!r.IsEmpty(includeFormats))) + var rangeUsed = RangeUsed(includeFormats); + if (rangeUsed != null) { - columns.Add(column); + foreach (var column in rangeUsed.Columns().Where(r => !r.IsEmpty(includeFormats))) + { + columns.Add(column); + } } return columns; } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs index b8490e4..4de56a9 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs @@ -1206,7 +1206,7 @@ public new IXLRows RowsUsed(Boolean includeFormats = false) { var rows = new XLRows(Worksheet); - foreach (var row in RangeUsed(includeFormats).Rows().Where(r => !r.IsEmpty(includeFormats))) + foreach (var row in base.RowsUsed(includeFormats)) { rows.Add(Row(row.RowNumber())); } @@ -1216,7 +1216,7 @@ public new IXLColumns ColumnsUsed(Boolean includeFormats = false) { var columns = new XLColumns(Worksheet); - foreach (var column in RangeUsed(includeFormats).Columns().Where(r => !r.IsEmpty(includeFormats))) + foreach (var column in base.ColumnsUsed(includeFormats)) { columns.Add(Column(column.ColumnNumber())); } diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Columns/ColumnsTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Columns/ColumnsTests.cs index 67bf566..f5ec5c6 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Columns/ColumnsTests.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Columns/ColumnsTests.cs @@ -1,5 +1,6 @@ using ClosedXML.Excel; using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; namespace ClosedXML_Tests.Excel { @@ -25,5 +26,20 @@ Assert.AreEqual("A2:A3", fromRange.RangeAddress.ToStringRelative()); } + [TestMethod] + public void NoColumnsUsed() + { + var wb = new XLWorkbook(); + var ws = wb.Worksheets.Add("Sheet1"); + Int32 count = 0; + + foreach (var row in ws.ColumnsUsed()) + count++; + + foreach (var row in ws.Range("A1:C3").ColumnsUsed()) + count++; + + Assert.AreEqual(0, count); + } } } diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Rows/RowsTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Rows/RowsTests.cs index ca96498..3023f0a 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Rows/RowsTests.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/Rows/RowsTests.cs @@ -1,5 +1,6 @@ using ClosedXML.Excel; using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; namespace ClosedXML_Tests.Excel { @@ -25,5 +26,21 @@ Assert.AreEqual("B1:C1", fromRange.RangeAddress.ToStringRelative()); } + + [TestMethod] + public void NoRowsUsed() + { + var wb = new XLWorkbook(); + var ws = wb.Worksheets.Add("Sheet1"); + Int32 count = 0; + + foreach (var row in ws.RowsUsed()) + count++; + + foreach (var row in ws.Range("A1:C3").RowsUsed()) + count++; + + Assert.AreEqual(0, count); + } } }