更多C#自动化到Excel

这将启动一个新的Excel工作簿:

Excel.Application oXL; Excel._Workbook oWB; oXL = new Excel.Application(); oXL.Visible = true; oWB = (Excel._Workbook)(oXL.Workbooks.Add( Missing.Value )); 

然而,如果一个人想要…

– “GetObject”(在熟悉的自动化范例中)到已经加载并在屏幕上打开的工作簿?

– 通过path名访问和写入closures的工作簿数据?

这两者都可以通过旧标准来实现。 最好是后者,尽pipe我现在不是一个select者。 谢谢你的帮助。

您可以使用以下方法获取Excel的现有实例:

 Marshal.GetActiveObject("Excel.Application") 

如果没有运行Excel的实例,这将抛出一个COMException。

自动化可见的Excel实例的一个缺陷是您的调用可能失败,因为Excel繁忙。 您可能需要实现IMessageFilter以避免此问题。

至于通过path访问已closures的工作簿 – 您需要打开工作簿:

 oXL.Workbooks.Open(...)