protected virtual void GroupRender(SubtotalGroup subGroup, GroupTag grData) { var sheet = subGroup.Range.Worksheet; sheet.SuspendEvents(); if (!sheet.Row(subGroup.Range.FirstRow().RowNumber()).IsHidden&& grData.Collapse) { sheet.CollapseRows(grData.Level); } if (grData.DisableOutLine) { using (var rows = sheet.Rows(subGroup.Range.RangeAddress.FirstAddress.RowNumber, subGroup.Range.RangeAddress.LastAddress.RowNumber)) { rows.Ungroup(); } } if (subGroup.Column <= 0) { return; } if (grData.LabelToColumn != subGroup.Column && subGroup.SummaryRow != null) { subGroup.SummaryRow.Cell(grData.LabelToColumn).Value = subGroup.SummaryRow.Cell(subGroup.Column).Value; } if (grData.MergeLabels > 0) { using (var rng = subGroup.Range.Column(subGroup.Column)) { if (subGroup.Range.RowCount() > 1) { int cellIdx = _maxLevel - subGroup.Level + 1; var style = rng.Cell(cellIdx).Style; rng.Merge(); rng.Style = style; rng.Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; if (grData.MergeLabels != MergeMode.Merge2) { rng.Cell(1).Value = ""; } } else { if (grData.MergeLabels != MergeMode.Merge2) { rng.Cell(1).Value = ""; } } } } sheet.ResumeEvents(); }
private static void FormatHeaderFooter(SubtotalGroup subGroup, IXLRangeRow groupRow) { if (subGroup.HeaderRow != null) { subGroup.HeaderRow.Clear(XLClearOptions.AllFormats); subGroup.HeaderRow.CopyStylesFrom(groupRow); subGroup.HeaderRow.CopyConditionalFormatsFrom(groupRow); } foreach (var cell in groupRow.Cells(c => c.HasFormula)) { subGroup.SummaryRow.Cell(cell.Address.ColumnNumber - groupRow.RangeAddress.FirstAddress.ColumnNumber + 1).Value = cell; } subGroup.SummaryRow.Clear(XLClearOptions.AllFormats); subGroup.SummaryRow.CopyStylesFrom(groupRow); subGroup.SummaryRow.CopyConditionalFormatsFrom(groupRow); }
protected virtual void GroupRender(SubtotalGroup subGroup, GroupTag grData) { var sheet = subGroup.Range.Worksheet; sheet.SuspendEvents(); if (!sheet.Row(subGroup.Range.FirstRow().RowNumber()).IsHidden&& grData.Collapse) { sheet.CollapseRows(grData.Level); } if (grData.DisableOutLine) { using (var rows = sheet.Rows(subGroup.Range.RangeAddress.FirstAddress.RowNumber, subGroup.Range.RangeAddress.LastAddress.RowNumber)) { rows.Ungroup(); } } if (subGroup.Column <= 0) { return; } if (grData.LabelToColumn != subGroup.Column) { subGroup.SummaryRow.Cell(grData.LabelToColumn).Value = subGroup.SummaryRow.Cell(subGroup.Column).Value; } if (grData.MergeLabels > 0 && subGroup.Range.RowCount() > 1) { using (var rng = subGroup.Range.Column(subGroup.Column)) { rng.Cell(1).Clear(XLClearOptions.AllFormats); rng.Cell(1).AsRange().Unsubscribed().CopyStylesFrom(rng.FirstCellUsed(false).AsRange().Unsubscribed()); rng.Cell(1).AsRange().Unsubscribed().CopyConditionalFormatsFrom(rng.FirstCellUsed(false).AsRange().Unsubscribed()); rng.Merge(); rng.Value = subGroup.GroupTitle; } } sheet.ResumeEvents(); }