C# 使用Excel互操作在工作簿中列出分配的表名

C# 使用Excel互操作在工作簿中列出分配的表名,c#,com,interop,excel,C#,Com,Interop,Excel,我有一个Excel工作簿,其中有几个工作表。已使用Excel中的名称管理器为工作表中的表指定了名称。是否有办法获得这些表名的列表,而不是工作表名 例如,如果工作簿定义为Microsoft.Office.Interop.Excel.workbook: var names = (workbook.Names as System.Collections.IEnumerable).Cast<Name>(); var names=(workbook.names为System.Collecti

我有一个Excel工作簿,其中有几个工作表。已使用Excel中的名称管理器为工作表中的表指定了名称。是否有办法获得这些表名的列表,而不是工作表名

例如,如果工作簿定义为Microsoft.Office.Interop.Excel.workbook:

var names = (workbook.Names as System.Collections.IEnumerable).Cast<Name>();
var names=(workbook.names为System.Collections.IEnumerable.Cast();
返回工作簿中已定义名称范围的列表。此外:

var worksheets = workbook.Worksheets.Cast<Worksheet>();
var worksheets=workbook.worksheets.Cast();
返回工作簿中的工作表列表,其名称与工作表的选项卡名称相同


这两个表都没有按指定的名称列出表。它们仅按工作表名称列出表。我希望我已经把这个问题讲清楚了,但如果需要,我可以提供一个例子。

出于历史原因,Excel中的表在OM中称为列表

您要查找的是
工作表上的
列表对象
。ListObject附加了一个Range对象,您可以使用它来计算名称<代码>显示名称
也可能返回名称-我不确定