diff --git a/ClosedXML/Excel/Tables/XLTable.cs b/ClosedXML/Excel/Tables/XLTable.cs index a090dfc..b69831d 100644 --- a/ClosedXML/Excel/Tables/XLTable.cs +++ b/ClosedXML/Excel/Tables/XLTable.cs @@ -65,7 +65,7 @@ foreach (var cell in headersRow.Cells()) { var name = cell.GetString(); - if (XLHelper.IsNullOrWhiteSpace(name)) + if (XLHelper.IsNullOrWhiteSpace(name)) { name = "Column" + (cellPos + 1); cell.SetValue(name); @@ -73,7 +73,7 @@ if (_fieldNames.ContainsKey(name)) throw new ArgumentException("The header row contains more than one field name '" + name + "'."); - _fieldNames.Add(name, new XLTableField(this) {Index = cellPos++ }); + _fieldNames.Add(name, new XLTableField(this, name) {Index = cellPos++ }); } } else @@ -87,7 +87,7 @@ { var name = "Column" + i; - _fieldNames.Add(name, new XLTableField(this) {Index = i - 1 }); + _fieldNames.Add(name, new XLTableField(this, name) {Index = i - 1 }); } } } @@ -102,7 +102,7 @@ Int32 cellPos = 0; foreach(var name in fieldNames) { - _fieldNames.Add(name, new XLTableField(this) { Index = cellPos++, Name = name }); + _fieldNames.Add(name, new XLTableField(this, name) { Index = cellPos++ }); } } @@ -164,8 +164,8 @@ public Boolean ShowColumnStripes { get; set; } private Boolean _showAutoFilter; - public Boolean ShowAutoFilter { - get { return _showHeaderRow && _showAutoFilter; } + public Boolean ShowAutoFilter { + get { return _showHeaderRow && _showAutoFilter; } set { _showAutoFilter = value; } } public XLTableTheme Theme { get; set; } @@ -450,7 +450,7 @@ _uniqueNames.Add(c.GetString()); co++; } - + headersRow.Clear(); RangeAddress.FirstAddress = new XLAddress(Worksheet, RangeAddress.FirstAddress.RowNumber + 1, RangeAddress.FirstAddress.ColumnNumber, @@ -462,7 +462,7 @@ else { using(var asRange = Worksheet.Range( - RangeAddress.FirstAddress.RowNumber - 1 , + RangeAddress.FirstAddress.RowNumber - 1 , RangeAddress.FirstAddress.ColumnNumber, RangeAddress.LastAddress.RowNumber, RangeAddress.LastAddress.ColumnNumber @@ -473,7 +473,7 @@ if (firstRow.IsEmpty(true)) { rangeRow = firstRow; - RangeAddress.FirstAddress = new XLAddress(Worksheet, + RangeAddress.FirstAddress = new XLAddress(Worksheet, RangeAddress.FirstAddress.RowNumber - 1, RangeAddress.FirstAddress.ColumnNumber, RangeAddress.FirstAddress.FixedRow, @@ -513,7 +513,7 @@ public IXLTable SetShowHeaderRow() { return SetShowHeaderRow(true); - } + } public IXLTable SetShowHeaderRow(Boolean value) { ShowHeaderRow = value; @@ -529,4 +529,4 @@ } } -} \ No newline at end of file +} diff --git a/ClosedXML/Excel/Tables/XLTableField.cs b/ClosedXML/Excel/Tables/XLTableField.cs index 0f98646..19e9655 100644 --- a/ClosedXML/Excel/Tables/XLTableField.cs +++ b/ClosedXML/Excel/Tables/XLTableField.cs @@ -5,22 +5,28 @@ internal class XLTableField: IXLTableField { private XLTable table; - public XLTableField(XLTable table) + public XLTableField(XLTable table, String name) { this.table = table; + this.name = name; } public Int32 Index { get; internal set; } - public String Name + private String name; + + public String Name { get { - return table.HeadersRow().Cell(Index + 1).GetString(); + return name; } set { - table.HeadersRow().Cell(Index + 1).SetValue(value); + if (table.ShowHeaderRow) + table.HeadersRow().Cell(Index + 1).SetValue(value); + + name = value; } } @@ -28,18 +34,18 @@ public String TotalsRowLabel { get { return totalsRowLabel; } - set + set { totalsRowFunction = XLTotalsRowFunction.None; table.TotalsRow().Cell(Index + 1).SetValue(value); - totalsRowLabel = value; + totalsRowLabel = value; } } public String TotalsRowFormulaA1 { get { return table.TotalsRow().Cell(Index + 1).FormulaA1; } - set + set { totalsRowFunction = XLTotalsRowFunction.Custom; table.TotalsRow().Cell(Index + 1).FormulaA1 = value; @@ -59,7 +65,7 @@ public XLTotalsRowFunction TotalsRowFunction { get { return totalsRowFunction; } - set + set { if (value != XLTotalsRowFunction.None && value != XLTotalsRowFunction.Custom) { @@ -85,7 +91,7 @@ cell.Style.NumberFormat = lastCell.Style.NumberFormat; } } - totalsRowFunction = value; + totalsRowFunction = value; } } }