ATL development in Chart in Excel

ATL development in Chart in Excel

利 用Excel提供的类型库, 对Excel文档进行操作, 图表的开发是一项痛苦的工作, 一个图表是由多个series(系列)组成, 每个系列可以赋值不同的公式(formular). 本文对系列上显示的标记文本和背景的颜色改变作一点探讨, 由于是基于COM组件的ActiveX控件开发, 不同于用VBA脚本的开发, 相关内容在网上讨论几乎没有. 我们已经创建一个chart在excel文档, 详见下面代码: SeriesCollection serc; serc=chart.SeriesCollection(vtMissing); Series ser=serc.NewSeries(); Interior oInt = ser.GetInterior(); oInt.SetColor(_variant_t((long)0)); // 注意, 这段代码会crash, 被注释掉 //ser.SetMarkerBackgroundColor(RGB(0,0,0)); LPDISPATCH lpdisp = wssMysheets.GetItem(_variant_t("Info")); _Worksheet sheet; sheet.AttachDispatch(lpdisp); str1.Format("I%d", i); str2.Format("=Info!I%d", i); lpdisp=sheet.GetRange(COleVariant(str1), COleVariant(str1)); VARIANT var; var.vt = VT_DISPATCH; // .vt is the usable member of the tagVARIANT var.pdispVal = lpdisp; ser.SetValues(var); // 关键代码... // 先适应数据标记 ser.ApplyDataLabels(2, // Show value vtMissing, vtMissing, vtMissing, vtMissing, vtMissing, _variant_t(true), vtMissing, vtMissing, vtMissing); // 得到缺省的数据标记 DataLabels dls = ser.DataLabels(vtMissing); // 得到数据标记字体 Font font = dls.GetFont(); // 对数据标记文本颜色修改! font.SetColor(_variant_t((long)RGB(255,255,255))); DataLabels有一个方法GetInterior(), 返回Interior对象, 调用其中的SetColor就可以改变标记文本的背景颜色.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值