codeplex上一个xll项目
优点:项目很小巧,不依赖于其他package,比如boost等,下载后编译可直接使用。和excel数据以及函数接口可以满足基本需求。
缺点:就是因为项目只是提供了最基本的接口功能,如果想让自定义函数能完善工作还需要较多的工作,比如内存管理,异常处理等问题(需要有较高的c++以及与excel接口的理解能力),否则excel极易崩溃关闭。最初试用这个代码一段时间后彻底放弃。
quantlibxl
http://quantlib.org/index.shtml
quantlib是闻名全球的开源金融数量分析库。quantlibxl是在纯c++版本上添加了完善的excel接口处理的xll项目。
优点:功能极其完善。首先,quantlib里面累计的函数种类繁多,从数学函数,到各类金融产品定价函数,以及工具类函数(比如交易日历函数),几乎覆盖了所有量化金融的话题,第二,代码延展性强,充分利用了OOP的特点,同时在excel中也以静态对象的方式存储,方便于excel层面的操作。(这一点与国外大投行quant组设计excel pricer的思路很类似),第三,异常处理非常完善,能够把错误信息直接返回到excel单元格里,极少出现excel崩溃的情况。
缺点:安装较为耗时,需要先装好python和boost,占用空间较大,另外在quantlibxl基础之上添加或者修改代码的过程有时候较为复杂,需要对整个库的结构有一定了解。经过一段时间的试用后,最后还是把quantlibxl作为主要的xll项目。
exceldna
优点:也是一个比较小巧的项目, 基于c#, 已经较为成熟,容易上手,另外异常处理等也很完善。利用c#的优势,好像还可以在代码中对excel的页面和ribbon等进行操作(这个功能没试过)
缺点:只提供基本的接口功能,如果要基于此做复杂的工作,可能需要写大量的代码。我目前用到这个项目的地方主要是用来写excel和mysql数据库的接口,这个功能用c#比用c++方便很多。