相关疑难解决方法(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万
查看次数

标签 统计

c# ×1

excel ×1