更多C#自动化到Excel

时间:2011-01-25 02:38:36

标签: c# .net excel ms-office office-interop

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

        Excel.Application oXL;
        Excel._Workbook oWB;

        oXL = new Excel.Application();
        oXL.Visible = true;

        oWB = (Excel._Workbook)(oXL.Workbooks.Add( Missing.Value ));

然而,如果有人想要......

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

- 按路径名访问并将数据写入已关闭的工作簿?

这两者都可以通过旧标准来实现。最好是后者虽然我现在不是选择者。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

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

Marshal.GetActiveObject("Excel.Application")

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

自动显示Excel实例的一个缺陷是,您的调用可能会因Excel繁忙而失败。您可能需要实施IMessageFilter以避免此问题。

至于按路径访问已关闭的工作簿 - 您需要打开工作簿:

oXL.Workbooks.Open(...)