diff --git a/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj b/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj index 539fd1e..ced8db9 100644 --- a/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj +++ b/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj @@ -33,6 +33,7 @@ true bin\Release\ TRACE + NET4 prompt 4 bin\Release\ClosedXML.XML diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs index cdc2bba..9c6bdc5 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTable.cs @@ -62,7 +62,21 @@ } } - public XLAutoFilter AutoFilter { get; private set; } + private XLAutoFilter _autoFilter; + public XLAutoFilter AutoFilter + { + get + { + using (var asRange = ShowTotalsRow ? Range(1, 1, RowCount() - 1, ColumnCount()) : AsRange()) + { + if (_autoFilter == null) + _autoFilter = new XLAutoFilter(); + + _autoFilter.Range = asRange; + } + return _autoFilter; + } + } public new IXLBaseAutoFilter SetAutoFilter() { @@ -299,7 +313,6 @@ public void InitializeAutoFilter() { - AutoFilter = new XLAutoFilter { Range = AsRange() }; ShowAutoFilter = true; } diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/AutoFilters/AutoFilterTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/AutoFilters/AutoFilterTests.cs index 68aad02..8353b2c 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/AutoFilters/AutoFilterTests.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/AutoFilters/AutoFilterTests.cs @@ -5,10 +5,12 @@ namespace ClosedXML_Tests { - [TestClass()] + using System.Collections.Generic; + + [TestClass] public class AutoFilterTests { - [TestMethod()] + [TestMethod] public void AutoFilterSortWhenNotInFirstRow() { using (var wb = new XLWorkbook()) @@ -27,5 +29,33 @@ } + [TestMethod] + public void AutoFilterExpandsWithTable() + { + using (var wb = new XLWorkbook()) + { + using (var ws = wb.Worksheets.Add("Sheet1")) + { + ws.FirstCell().SetValue("Categories") + .CellBelow().SetValue("1") + .CellBelow().SetValue("2"); + + var table = ws.RangeUsed().CreateTable(); + + var listOfArr = new List(); + listOfArr.Add(3); + listOfArr.Add(4); + listOfArr.Add(5); + listOfArr.Add(6); + + table.DataRange.InsertRowsBelow(listOfArr.Count - table.DataRange.RowCount()); + table.DataRange.FirstCell().InsertData(listOfArr.AsEnumerable()); + + Assert.AreEqual("A1:A5", table.AutoFilter.Range.RangeAddress.ToStringRelative()); + } + + } + + } } } diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MultipleSheets.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MultipleSheets.xlsx deleted file mode 100644 index 6e90997..0000000 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MultipleSheets.xlsx +++ /dev/null Binary files differ