如何确定合并范围内的哪些单元格可见并可以有值?

时间:2019-03-06 10:16:35

标签: c# excel closedxml

我需要找出Cells中的哪个Range在合并范围内不可见。我需要包含空单元格,但我想排除由于合并单元格而看不到的单元格。 (在合并范围内,只有一个单元格,行,列可以包含非空值...?)。

我有以下代码:

    using (XLWorkbook wb = new XLWorkbook(ExcelFile.FullName))
    {
        foreach (IXLNamedRange r in wb.NamedRanges)
        {
                foreach (var c in r.Ranges.Cells())
                {
                    if (c.IsMerged() /*&& something*/)
                        continue;
                    /*Do processing of visible values*/

我需要从合并范围中获取可见的单元格,如果该值被填充(即不使用IsEmpty(),则该合并范围将包含值)。我可以确定范围是否已合并,但是如何添加条件以仅包括可见单元格?它总是第一列/行吗? IsMerged()会在合并范围内的所有像元上返回true,不仅在不可见且不能包含值的像元上。

示例问题:

Merged ranges

一个命名范围的地址为C21:D33。 我需要C21:C33的值,但我不需要包含值D21:D33-它们都始终为null。但是C21:C33的值也可以为null或为空,但我都需要它们。 D21:D33只能包含null,但不能包含其他任何内容,但是C21:C33可以包含非null值。我需要所有可以为非空的单元格。

0 个答案:

没有答案