使用Mac OS X / Linux开发Excel XLL

3
我过去五年一直在使用Visual Studio开发C++模型,并将它们封装到Xll中,以与Excel一起使用(使用xlw)。 Excel插件是我想要交付的最终产品。
然而,我认为使用Linux或Mac OS X编写C ++代码要好得多。但我也相信通过Xll将我的模型与Excel一起使用也非常实用,但可悲的是这只适用于Windows。
因此,我想知道是否有一种方法可以在Mac OS X(或Linux)上执行实现,生成Excel插件并在Windows上使用它。
我目前唯一想到的方法是在Mac OS X上进行编码,编译项目时不包括涉及Xll的部分,然后将该项目加载到Visual Studio中并完全编译以生成Excel插件。但说实话,这听起来有点费力,我希望有更简单的方法。
2个回答

1
我已经开发了一个使用Mac OSX、Eclipse CDT和XCode的C++ Excel插件的工作示例,并且还有一个使用该插件的电子表格。这里有一个解释http://www.smr.co.uk/excel-addin-on-mac-os-x-using-cdt/,包括使用的版本等信息,代码在这里https://github.com/PollardsEtFilles/MacCPPExcelAddinExample
有两个要注意的地方:
  • Excel 2011是32位的
  • 确保插件与Excel电子表格在同一目录下
clang(包含在Xcode中)是g++的很好替代品。
你只需要安装Eclipse CDT并导入代码就可以开始了。

这不是一个XLL插件,而只是一个dylib。 - Malick

1

这是可能的。您只需要使用mingw(http://mingw-w64.sourceforge.net/)从Linux编译即可。我应该指出,您可以使用支持C++ 11x的非常不错的C++编译器g++ 4.7。交叉编译器在Mac和Linux上都可以工作,并且因为它是gcc,所以您可以将它们与您喜欢的工具生态系统一起使用。

有一些意外的怪癖,但以防万一:

  • 记得使用-Wl,--add-stdcall-alias来获得在最终dll中没有下划线导出的函数。
  • 使用__attribute((dllexport))代替declspec(__declexport)。但是,如果您愿意,也可以使用更古老的.def技巧。无论如何,请使用Windows sdk工具“Depends.exe”或类似工具确保您的dll正确导出名称。
  • 如果您正在使用虚拟机进行测试,或者任何新的Excel安装,请记得安装Office和Excel附带的所有功能。否则,在Excel 2007和Excel 2010中,插件将无法正常工作,您会错误地归咎于构建设置。
此外,如果您打算使用http://kalx.net/xll/,这确实可以让您的生活更简单,那么您将需要更新该库以符合严格的C++标准。
顺祝商祺。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接