Skip to content

Commit 007f6cc

Browse files
authored
push (#236)
1 parent e4f4ca4 commit 007f6cc

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

ClosedXML.Report/Excel/Subtotal.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -304,12 +304,25 @@ public SubtotalGroup[] ScanForGroups(int groupBy)
304304

305305
foreach (var moveData in grRanges)
306306
{
307-
if (moveData.Type == RangeType.DataRange)
307+
if (moveData.Type != RangeType.DataRange) continue;
308+
309+
var groupRng = Sheet.Range(moveData.SourceAddress);
310+
311+
var cuttingGroups = _groups.Where(g => moveData.SourceAddress.Contains(g.Range.RangeAddress.LastAddress)).ToArray();
312+
if (cuttingGroups.Any())
308313
{
309-
var groupRng = Sheet.Range(moveData.SourceAddress);
310-
var gr = new SubtotalGroup(level, groupBy, moveData.GroupTitle, groupRng, null, false);
311-
result.Add(gr);
314+
var startAddress = moveData.SourceAddress.FirstAddress;
315+
foreach (var g in cuttingGroups)
316+
{
317+
groupRng = Sheet.Range(startAddress, g.Range.RangeAddress.LastAddress);
318+
result.Add(new SubtotalGroup(level, groupBy, moveData.GroupTitle, groupRng, null, false));
319+
startAddress = g.Range.LastCell().WorksheetRow().RowBelow()
320+
.Cell(startAddress.ColumnNumber).Address;
321+
}
322+
groupRng = Sheet.Range(startAddress, moveData.SourceAddress.LastAddress);
312323
}
324+
325+
result.Add(new SubtotalGroup(level, groupBy, moveData.GroupTitle, groupRng, null, false));
313326
}
314327

315328
_groups.AddRange(result);
1.12 KB
Binary file not shown.
496 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)