我有一个Excel工作簿,里面有几个工作表。已使用Excel中的名称管理器为工作表中的表分配了名称。有没有办法获取这些表名的列表,而不是工作表名称?
例如,将工作簿定义为Microsoft.Office.Interop.Excel.Workbook:
var names = (workbook.Names as System.Collections.IEnumerable).Cast<Name>();
返回工作簿中已定义的名称范围列表。此外:
var worksheets = workbook.Worksheets.Cast<Worksheet>();
返回工作簿中的工作表列表,其名称与工作表的选项卡名称相同。
这些都没有按照指定的名称列出表格。它们仅按工作表名称列出表。我希望我的问题足够清楚,但如果需要,我可以提供一个例子。
答案 0 :(得分:2)
由于历史原因,Excel中的表格在OM中称为列表。
您正在寻找ListObjects
上的Worksheet
。 ListObject附加了一个Range对象,您可以使用它来确定名称。 DisplayName
也可能会返回名称 - 我不确定。