3

我知道可以为单元格命名,如以下问题中所回答:

EPPLUS - 重命名单元格

您如何查看给定的单元格/范围是否有名称并检索该名称?

4

1 回答 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();
于 2012-12-12T05:48:45.960 回答