gpt4 book ai didi

c# - 通过 Handle 使用 C# 获取 Excel 应用程序的实例

转载 作者:太空狗 更新时间:2023-10-29 17:28:30 24 4
gpt4 key购买 nike

我有一个 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)

最佳答案

使用以下代码获取第一个运行的Excel实例:

oExcelApp =  (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");

示例

public Excel.Application StartExcel()
{
Excel.Application instance = null;
try
{
instance = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
}
catch (System.Runtime.InteropServices.COMException ex)
{
instance = new Excel.ApplicationClass();
}

return instance;
}

关于c# - 通过 Handle 使用 C# 获取 Excel 应用程序的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com