如何使用VSTO在Excel中获取Worksheet的CodeName

我喜欢这样:

if (Excel._Application.ActiveWorkbook != null)
{
    List<WorksheetKeyValue> sheets = new List<WorksheetKeyValue>();
    foreach (object ws in ExcelApp.ActiveWorkbook.Worksheets)
    {
        string strCodeName = ws.CodeName
    }
}

但strCodeName是一个空字符串,它应该是在VBA中的Sheet1,Sheet2,…,SheetN.

谢谢

在您的情况下,您可以使用Worksheet.CustomProperties作为替代来保存工作表的唯一属性.

Worksheet ws = **current_sheet** as Worksheet;
ws.CustomProperties.Add("SheetID", **some_value**);

所以,稍后您可以访问它们

foreach (Excel.CustomProperty prop in ws.CustomProperties)
{
    if (prop.Name == "SheetID")
    {
       // access as prop.Value and prop.Name
    }
 }

希望这可以帮助.

相关文章
相关标签/搜索