相关疑难解决方法(0)

如何使用后期绑定来获取excel实例?

我正在使用

[DllImport("Oleacc.dll")]
static extern int AccessibleObjectFromWindow(
int hwnd, 
uint dwObjectID, 
byte[] riid,
ref Excel.Window ptr);
Run Code Online (Sandbox Code Playgroud)

使用他的句柄获取Excel实例,我从excel实例的进程ID获取.

这就是我使用这些功能时的样子

const uint OBJID_NATIVEOM = 0xFFFFFFF0;
Guid IID_IDispatch = new Guid("{00020400-0000-0000-C000-000000000046}");
Excel.Window ptr = null;  
int hr = AccessibleObjectFromWindow(hwndChild, OBJID_NATIVEOM, 
          IID_IDispatch.ToByteArray(), ref ptr);

Object objApp = ptr.Application;
Run Code Online (Sandbox Code Playgroud)

这种代码安静很有效,但唯一的问题是我必须添加对Office 2003主互操作程序集的引用.

正如你所看到的,函数中的最后一个参数是我需要添加对Pias的引用的原因,所以我的问题是如果有一种方法可以避免使用Interop程序集,我尝试过后期绑定但是也许我一直在做错,因为我无法让它发挥作用.

c# excel

18
推荐指数
2
解决办法
1万
查看次数

以编程方式实例化Excel时加载插件

我正在尝试使用VBA创建一个新的Excel实例:

__CODE__

问题是这个新的Excel实例没有加载我正常打开Excel时加载的所有插件... Excel Application对象中是否有任何内容可以加载所有用户指定的插件?

我不是试图加载特定的加载项,而是让新的Excel应用程序表现得像用户自己打开它一样,所以我真的在寻找通常加载的所有用户选择的加载项的列表打开Excel时.

excel vba excel-addins

15
推荐指数
2
解决办法
2万
查看次数

如何使用Interop加载Excel Addin

我有一个AddIn,我想从C#winforms应用程序通过Excel interop调用.

我无法加载插件等,除非我每次卸载并进行树脂安装(这很可能与Excel没有加载插件时使用interop -btw,无法让他们的示例在C#中工作).不幸的是,这对用户来说很慢并且很烦人,所以我需要简化它.

我想有一个Excel实例,但加载已安装的插件而不强制此安装/重新安装问题.

我搜索和搜索,但我在谷歌上找到的所有内容都提供了安装/重新安装的解决方案.还有其他方法吗?加载项已安装,我只想要excel加载它.

这就是我现在正在做的事情(取自google'd建议):

// loop over the add-ins and if you find it uninstall it.
foreach (AddIn addIn in excel.AddIns)
    if (addIn.Name.Contains("My Addin"))
        addin.Installed = false;

    // install the addin
    var addin = excel.AddIns.Add("my_addin.xll", false);
        addin.Installed = true;
Run Code Online (Sandbox Code Playgroud)

c# excel interop

6
推荐指数
1
解决办法
1万
查看次数

使用c#application中的addins启动excel应用程序

我有一个ac#app,它需要创建一个excel应用程序,然后打开一个工作簿.问题是我需要在excel打开时加载Bloomberg addinn.我发现的唯一方法是在这个后期工作示例中.

这确实启动了excel并且能够使用Bloomberg功能.但是我想知道是否有办法将myXl转换为xlApp,其中xlApp的类型为Microsoft.Office.Interop.Excel.Application?

var myXl = Process.Start("excel.exe");
Run Code Online (Sandbox Code Playgroud)

原因是我有一个库,它有一些我希望使用的有用功能,但它需要一个类型为Microsoft.Office.Interop.Excel.Application的参数.我该怎么做呢?

.net c# office-interop excel-interop

5
推荐指数
1
解决办法
1779
查看次数

标签 统计

c# ×3

excel ×3

.net ×1

excel-addins ×1

excel-interop ×1

interop ×1

office-interop ×1

vba ×1