2010-04-21 69 views
2

我知道这个问题之前已经发布......但我还没有找到任何答案(除了关于XLL实际上是如何DLL等通用的答案)。 有没有人从C#中调用XLL(使用DllImport),而无需使用作为插件加载的XLL加载Excel?在Excel外部运行XLL?

基本上,您将不得不创建一个模拟Excel主机的特殊XLCALL32.DLL。听起来像很多工作......有人做过这件事吗?或者看到一个产品做到这一点?

感谢

+0

查看答案http://stackoverflow.com/questions/278025/calling-an-xll-from-unmanaged-c?rq=1 – 2012-11-19 14:07:13

+0

阅读goverts答案 - XLL Plus是要走的路,如果钱是不是一个问题 - http://stackoverflow.com/questions/1940747/calling-excel-dll-xll-functions-from-c-sharp?rq=1 – quixver 2014-12-02 14:50:31

+0

PS这是很多工作。 Stubbing excel并不像听起来那么容易。 – quixver 2014-12-02 14:52:12

回答

0

你是在正确的轨道上需要创建自己的XLCall32.dll和模拟Excel中。考虑到您可以通过XLL用于与Excel交谈的界面来做这件事,这是非常重要的。从您的XLL中需要使用的Excel越少越容易,所以我猜如果您有一个您需要使用的已知XLL选择,并且您知道通过XLL接口访问哪些Excel,那么您可以替换你需要的位...

你为什么要这么做?

+0

我有一段XLL,我写了一段时间。我失去了源代码。我很想能够从c#中调用它的函数。 – Nestor 2010-04-21 18:08:35

+0

恕我直言,你会更容易重写XLL的形式,你可以从C#调用比编写替代XLCall32.dll和模拟Excel ...然后再次我猜这取决于你是多少使用Excel来完成你的工作,但我希望你能记住,所以你至少应该知道你需要模拟的Excel部分。然后就是加载xll的问题,将你的c#类型编组到相应的XLOPER并调用入口点... – 2010-04-21 20:11:22

0

评估这个XLL+库(它不是免费的,运行在试用版atm上),它帮助“模拟”/“模拟”XLCALC32.dll调用(因为它只需要2种方法)。如果我到达某个地方,会让你知道。