关于Excel的批注操作

    最近需要给那该死的mapgis写个二次开发,需要将Excel中的数据生成mapgis图件,其中就有读批注的问题,但是,找了很久都找不到读取的方法,最后也就不找了,开始潜心研究VC自动生成的类库,终于明白了。
    如果我想要加批注很简单,range.SetComment就可以了,可是读的函数就只有 range.GetComment,可它返回的是一个LPDISPATCH的接口,再往下就没下文了,翻了COM的书来看,接口就是一切,所以,给了我接口,就是给了我一座金山啊。我在用Delphi时,用Excel是由Text的属性来操作的,猜想,TEXT可能是Comment的一个属性,而有了接口,读这个属性应该是不难的吧,试写代码如下:

DISPID dispCommentText;  
wchar_t *ucPtr  =   L"Text";  
//取属性的接口号
lpDisp->GetIDsOfNames(IID_NULL,   &ucPtr,   1,   LOCALE_USER_DEFAULT,   &dispCommentText);  
//传入参数
DISPPARAMS   dpRangeItem   =   {NULL,   NULL,   0,   0};  
//返回值
COleVariant vCommentText;
//调用COM的Invoke来取批注的值
HRESULT hr   =   lpDisp->Invoke(dispCommentText,  
 IID_NULL,  
 LOCALE_SYSTEM_DEFAULT,    
 DISPATCH_PROPERTYGET   |   DISPATCH_METHOD,  
 &dpRangeItem,
 &vCommentText,
 NULL,   NULL);  
CString ss=vCommentText.bstrVal;

    真的,我读到了批注,为了这个批注,我折腾了两个多星期,没白天没黑夜的。
    当然,我完成了我的工作就没再发掘comment的其它内容了,我想,包括字体,颜色,底色等,都可以如上方法去设置,有心情的兄弟去试试吧!

    原创文章    ivu1399 2007-07-13
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值