使用XLW生成XLL文件来简化开发Excel扩展功能

分类:代码, 博客, 资源 标签:,

在使用Excel时,特别是需要使用分析工具时,我们就会使用到加载宏,这里面的宏好多就是扩展Excel功能的XLL文件,这个XLL文件其实是满足一定接口规范的DLL链接库文件,而且经常是使用C++开发的,如果直接使用Excel SDK进行XLL开发是比较麻烦的,针对这一问题,XLW出现了。

XLW(A Wrapper for the Excel API, http://xlw.sourceforge.net/)是一个C++语言对Excel的开发者工具包(SDK)的一个封装,简化了C++程序操作Excel文档的方法,XLW4.0已经支持Excel 2007。使用XLW可以很方便的使用C++对Excel功能进行扩展,首先它提供了一个模板生成器xlwTemplateExtractor.exe,可以生成相应的工程文件,然后又具有一个接口生成器InterfaceGenerator.exe来自动生成相应的接口包装文件(xlwWrapper.cpp),从而大大减少了只使用Excel SDK来完成XLL开发所需的相关代码,降低了开发难度,避免一些错误的产生。

XLW示例:

C++头文件cppinterface.h

#ifndef TEST_H
#define TEST_H

#include <xlw/MyContainers.h>
#include <xlw/CellMatrix.h>
#include <xlw/DoubleOrNothing.h>
#include <xlw/ArgList.h>
#include <xlw/XlOpenClose.h>

using namespace xlw;

//<xlw:libraryname=MyTestLibrary

short // echoes a short
EchoShort(short x // number to be echoed
       );
#endif

C++源文件source.cpp

#include <cppinterface.h>
#pragma warning (disable : 4996)

short // echoes a short
EchoShort(short x // number to be echoed
           )
{
    return x;
}

稍微引申下,就可以参考 采用C++ TR1中的随机数发生器生成Gamma分布随机数 配合着扩展Excel的随机数函数,方便地生成多种随机分布的随机数了,相应宏文件过段时间发布,水文工具集也想包括这方面的扩展功能了,呵。



分类:代码, 博客, 资源 标签:,

5 Responses to “使用XLW生成XLL文件来简化开发Excel扩展功能”

  1. 淘宝  on 七月 22nd, 2010

    这篇文章写的很好!

  2. Eric  on 七月 22nd, 2010

    期待。。。。

    • CnHUP  on 七月 22nd, 2010

      努力中,谢谢关注!

  3. lsc  on 七月 22nd, 2010

    高手赶紧发布你的水文工具集,最好是跨平台的,哈

    • CnHUP  on 七月 22nd, 2010

      有几个能像你一样跨N个平台呢,呵……


发表评论

You must be logged in to post a comment.