EPPLUS - 获取单元格/范围的名称

3
我知道可以给单元格命名,就像以下问题的答案所述:

EPPLUS - 重命名单元格

如何查看给定的单元格/区域是否具有名称并检索该名称?
1个回答

2

有一个属性叫做IsName,可以确定范围是否有名称。但似乎无法正常工作。我建议您查询命名单元格集合,即sheet.Namesbook.Names(它们包含表格或工作簿中的所有名称)。然后将FullAddressAbsolute与给定单元格进行比较,以获取所需的命名单元格。

var cell = sheet.Cells["C1"]; // cell you wanna find the name
ExcelNamedRange namedCell = null;
foreach (var item in book.Names)
{
    if (item.FullAddressAbsolute.Equals(cell.FullAddressAbsolute))
    {
        namedCell = item;
        break; // if you don't wanna find all
    }
}
// if (namedCell == null) --> NOT FOUND
// else
//      namedCell.Name : contains the name you wanna retrieve

LINQ也可以替代循环:
namedCell = book.Names.Where(item => item.FullAddressAbsolute.Equals(cell.FullAddressAbsolute)).FirstOrDefault();

只有工作簿才能提供名称集合,工作表不行。 - Maxim
我不知道你在使用哪个版本。但是可以确定的是,EPPlus 3.1.2 提供了这两种范围。 - Han
抱歉,EPPlus 是我遗漏的部分。我正在直接使用 VSTO。 - Maxim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接