我知道可以为单元格命名,如以下问题中所回答:
您如何查看给定的单元格/范围是否有名称并检索该名称?
有一个属性,即IsName
可以确定范围是否有名称。但它似乎无法正常工作。我想你要查询命名的单元格集合,即sheet.Names
或book.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();