使用Excel互操作在工作簿中列出指定的表名
本文关键字:互操作 Excel 工作簿 使用 | 更新日期: 2023-09-27 18:29:22
我有一个Excel工作簿,里面有几个工作表。工作表中的表已经使用Excel中的名称管理器分配了名称。有没有办法获得这些表名的列表,而不是工作表名?
例如,工作簿定义为Microsoft.Office.Interop.Excel.workbook:
var names = (workbook.Names as System.Collections.IEnumerable).Cast<Name>();
返回工作簿中已定义的名称范围的列表。另外:
var worksheets = workbook.Worksheets.Cast<Worksheet>();
返回工作簿中的工作表列表,其名称与工作表的选项卡名称相同。
这两个都没有按指定的名称列出表。它们只按工作表名称列出表。我希望我已经把这个问题说得足够清楚了,但如果需要的话,我可以提供一个例子。
由于历史原因,Excel中的表在OM中被称为列表。
您要查找的是Worksheet
上的ListObjects
。ListObject附带了一个Range对象,您可以使用它来计算名称。DisplayName
可能也会返回名称——我不确定。