Excel C#:如何从Range对象获取工作表/工作簿名称和地址?

时间:2015-04-21 14:58:46

标签: c# excel

我注册了一个Excel.Application.SheetChange事件,它传递了更改的范围对象。

我试图通过尽可能少的互操作调用来提取工作表名称,工作簿名称和地址。

有没有人有什么好主意?例如。就像我如何获得该范围的完整地址然后进行一些字符串解析才能得到它?

以下是代码snippit:

    private void ws_change(Excel.Range target){
        //Code to get target workbook name, worksheet name, and range address
   }

非常感谢。

1 个答案:

答案 0 :(得分:5)

您应该查看各种属性:

var sheet = range.Worksheet;
var sheetName = sheet.Name;

var workbook = (Workbook)sheet.Parent;
var workbookName = workbook.Name;

如果您真的想沿着解析路线前进,那么您可以通过在External = true索引器中指定Address来获取该范围的完全限定地址:

var address = range.Address[true, true, XlReferenceStyle.xlA1, true, null];
// returns e.g. [Book1]Sheet1!A1

有关详细信息,请参阅documentation for Address