diff --git a/ClosedXML/Excel/Cells/IXLCell.cs b/ClosedXML/Excel/Cells/IXLCell.cs index b46bf38..274a50f 100644 --- a/ClosedXML/Excel/Cells/IXLCell.cs +++ b/ClosedXML/Excel/Cells/IXLCell.cs @@ -319,6 +319,8 @@ Boolean IsMerged(); + IXLRange MergedRange(); + Boolean IsEmpty(); Boolean IsEmpty(Boolean includeFormats); diff --git a/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/Excel/Cells/XLCell.cs index 5e5eb14..63e46de 100644 --- a/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/Excel/Cells/XLCell.cs @@ -1239,6 +1239,11 @@ return Worksheet.Internals.MergedRanges.Contains(this); } + public IXLRange MergedRange() + { + return Worksheet.Internals.MergedRanges.FirstOrDefault(r => r.Contains(this)); + } + public Boolean IsEmpty() { return IsEmpty(false); diff --git a/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs b/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs index 3a41da8..f87f008 100644 --- a/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs +++ b/ClosedXML_Tests/Excel/Worksheets/XLWorksheetTests.cs @@ -110,6 +110,11 @@ Assert.AreEqual(2, ws.MergedRanges.Count); Assert.AreEqual("A1:B2", ws.MergedRanges.First().RangeAddress.ToStringRelative()); Assert.AreEqual("D2:E2", ws.MergedRanges.Last().RangeAddress.ToStringRelative()); + + Assert.AreEqual("A1:B2", ws.Cell("A2").MergedRange().RangeAddress.ToStringRelative()); + Assert.AreEqual("D2:E2", ws.Cell("D2").MergedRange().RangeAddress.ToStringRelative()); + + Assert.AreEqual(null, ws.Cell("Z10").MergedRange()); } [Test]