3

我在 .NET 应用程序中创建了一个 Microsoft Excel 实例(如果重要,则为 WPF),并且我将它嵌入其中,如下所示:

        var excelType = Type.GetTypeFromProgID("Excel.Application");
        var excelObj = Activator.CreateInstance(excelType);
        excelType.InvokeMember("Visible", BindingFlags.SetProperty, null, excelObj, new object[] { true }, ComCulture);
        var excelHwnd = new IntPtr((int)excelType.InvokeMember("Hwnd", BindingFlags.GetProperty, null, excelObj, new object[0], ComCulture));
        var managedWindowHwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
        SetParent(excelHwnd, managedWindowHwnd);
        MoveWindow(excelHwnd, 0, 0, Convert.ToInt32(Width), Convert.ToInt32(Height), true);

除 Excel 外的所有作品都不会加载已安装的加载项。如果我通过开始菜单运行 Excel,它会加载加载项。

我想我需要为 Excel 指定一些参数以启用加载项加载。但我不知道什么/如何...

4

1 回答 1

0

您可以使用互操作手动执行此操作,您可以参考我在从 UDF 获取 excel 单元格地址以获取 excel 应用程序对象的句柄的帖子。拥有应用程序后,您可以通过循环遍历 application.AddIns 和 application.ComAddIns 并将每个项目的安装/连接属性设置为 true 来手动启用插件

于 2012-04-26T06:08:28.903 回答