using ClosedXML.Excel; using MoreLinq; using System; using System.Linq; // TODO: Add example to Wiki namespace ClosedXML_Examples.Tables { public class ResizingTables : IXLExample { public void Create(string filePath) { using (var wb = new XLWorkbook()) { var ws1 = wb.AddWorksheet("Sheet1"); var data1 = Enumerable.Range(1, 10) .Select(i => new { Index = i, Character = Convert.ToChar(64 + i), String = new String('a', i), Integer = 64 + i }); var table1 = ws1.Cell("B2").InsertTable(data1, true) .SetShowHeaderRow() .SetShowTotalsRow(); table1.Fields.First().TotalsRowLabel = "Sum of Integer"; table1.Fields.Last().TotalsRowFunction = XLTotalsRowFunction.Sum; var ws2 = ws1.CopyTo("Sheet2"); var table2 = ws2.Tables.First(); table2.Resize(table2.FirstCell(), table2.LastCell().CellLeft().CellAbove(3)); var ws3 = ws2.CopyTo("Sheet3"); var table3 = ws3.Tables.First(); table3.Resize(table3.FirstCell().CellLeft(), table3.LastCell().CellRight().CellBelow(1)); wb.Worksheets.ForEach(ws => ws.Columns().AdjustToContents()); wb.SaveAs(filePath); } } } }