基于F#或C#的Excel加载项在OSX上

我有一些方便的Excel加载项在Windows下的Excel下运行,我真的想要生成与OS X上的Excel一起使用的加载项的版本。在Windows下,我使用奇妙的Excel-DNA包让我调用我的基于.Net的VBA逻辑。 但是,在我的Mac上,我甚至很难从编写,打包,部署,然后调用基于C#或F#的加载项中find一个起点。

或者是有一些非VBA我可以重写我的加载项,所以他们将在Windows和OSX上运行? 我向Scala,Python或其他任何能够提供所需可移植性的开放式平台开放。

我可以从2011年在这里看到一个post,所以我写了希望,自2011年这种types的最后一个查询以来,事情已经取得了进展。

开发语言,以及是否使用Mono(运行C#/ F#)并不是真正的问题。 如果在Mac版Excel中对原生(xll样式)加载项有一些支持,那么可以将其绑定到其他任何东西上,就像我在Windows下使用Excel-DNA所做的那样。 古代(OS X之前版本)的Mac版Excel确实支持native .xlls,但是我没有发现任何文档或证据表明这仍然是支持的。

从VBA到外部代码,以COM或Declare Function的风格进行绑定可能是可能的 – 当然你可以使用Declare Function调用.dylib库(我只是说基于这个SO回答 )。 所以这给你一个探索的方向,Xamarin for Mac可能允许你创build本地库,将与C#/ F#中的Declare一起工作。

我从来没有能够在网上find很多有关Mac版Excel的文档,这更加阻碍了进一步的努力。


所有这些对于高级用户来说都是一个很长的路要走,Excel几乎只有Windows。 你的努力可能是最好的探索虚拟机或双启动设置。

我会欢迎任何相反的信息。

不是F#/ C#,但是有一个脚本桥,允许您使用Obj-C访问一些Excel OM 。 你也可以去VBA路线 ,也许从VBA调用你的C#库 ?

我用ExcelDNA解决了这个问题。 正如ExcelDNA论坛所述,它不支持Office for Mac,但有一个解决方法。 安装Wine for OSX,然后在其中运行Microsoft Office 2003或2010。 我使用了一款名为Crossover的Wine的商业版本,效果很好。 这种方法的缺点是你必须在你的AddIn的每个目标上安装Wine。

我创build的Excel AddIn是Excel-REPL 。