【发布时间】:2015-10-31 13:16:30
【问题描述】:
我正在尝试使用 Excel 对象库 v.15 创建一个与 Excel 交互的 WinForms 应用程序。
我正在使用它来获取 Excel 应用程序对象
(Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
而且我知道我可以通过使用来获得我想要的命名表的范围
_application.Range["MyTableName"];
现在,我面临的问题是,如果我同时打开两个工作簿,并且每个工作簿都有一个同名的命名表,我不知道将返回哪个 Range。
Excel 应用程序是独一无二的,所以我不能简单地尝试根据窗口标题或类似的东西来获取进程。 我可以根据标题获取 Workbook 对象:
_application.Workbooks.Cast<Workbook>().FirstOrDefault(w.Name.Equals(title))
但是我无法访问特定工作簿的范围。 我知道我可以遍历 Workbook 元素的 Sheets 试图找到表格,但我想知道是否还有另一种“更清洁”的方式。
我将不胜感激。
谢谢,
- 会
【问题讨论】:
标签: c# excel-interop