我有一个简单的C#应用程序,需要将一些值写入特定工作表的Excel范围内。 如果不存在Excel应用程序实例,我会创建它,但是如果已经存在,我想将其设置为活动状态并获取其实例以在我的代码中使用。
我使用以下代码创建新的应用程序:
Microsoft.Office.Interop.Excel app =
new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
我使用这个 API 来获取当前活动的 Excel 窗口的句柄
[DllImportAttribute("User32.dll")]
private static extern int FindWindow(String ClassName, String WindowName);
我该如何通过句柄获取Excel应用程序的实例?int hWnd = FindWindow(null, "Microsoft Excel - MySheet.xlsx");
Microsoft.Office.Interop.Excel app = ....(hWnd)
instance = new Excel.ApplicationClass();
没有起作用。我不得不使用instance = new Excel.Application();
。 - David MurdochApplication()
而不是ApplicationClass()
是一种解决方法,尽管看起来你正在实例化一个接口,但实际上会得到相同的结果! - James