Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }