以编程方式创buildExcel实例并加载所有加载项

我正在.NET应用程序中创build一个Microsoft Excel的实例(如果它很重要的话),我就像这样embedded它:

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来启用加载项加载。 但是我不知道怎么样…

您可以使用interop手动执行此操作,您可以参考我的post从UDF获取Excel单元格地址以获取Excel的Application对象的句柄。 一旦你有了应用程序,你可以通过循环遍历application.AddIns和application.ComAddIns,并将installed / connect属性设置为true来手动启用插件