VC如何操纵Excel图表的图例

hagx 2018-12-10 09:43:19
我想取得图表的图例,然后更改颜色和文字啥的,但是,在最后一句,运行时提示 找不到成员
_Chart chart;
ChartObjects chartobjects;
ChartObject chartobject;

lpDisp = sheet.ChartObjects(covOptional);
chartobjects.AttachDispatch(lpDisp);
chartobject = chartobjects.Add(left, top, width, height);

chart.AttachDispatch(chartobject.GetChart());
chart.SetChartType(63);


chart.ChartWizard(var,
covOptional,
covOptional, // Format: 1~6.
COleVariant((short)2), // PlotBy: 指定系列中的数据是来自行(1)还是来自列(2)
COleVariant((short)1), //CategoryLabels.
COleVariant((short)0), // SeriesLabels.
COleVariant((short)TRUE), // HasLegend.
COleVariant(""), // Title.
COleVariant("Time (hh:mm:ss)"),// CategoryTitle.
COleVariant("Temperature (C)"),// ValueTitles.
covOptional // ExtraTitle.
);


LegendEntries legendEntries;
legendEntries.AttachDispatch(chart.GetLegend());
long k=legendEntries.GetCount(); //这一句出错了,说找不到成员
...全文
201 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2018-12-12
  • 打赏
  • 举报
回复
建议先录制宏,手动操作EXCEL, 然后按宏编辑修改代码

hagx 2018-12-11
  • 打赏
  • 举报
回复
_Chart chart;
ChartObjects chartobjects;
ChartObject chartobject;

lpDisp = sheet.ChartObjects(covOptional);
chartobjects.AttachDispatch(lpDisp);
chartobject = chartobjects.Add(left, top, width, height);

chart.AttachDispatch(chartobject.GetChart());
chart.SetChartType(63);


chart.ChartWizard(var,
covOptional,
covOptional, // Format: 1~6.
COleVariant((short)2), // PlotBy: 指定系列中的数据是来自行(1)还是来自列(2)
COleVariant((short)1), //CategoryLabels.
COleVariant((short)0), // SeriesLabels.
COleVariant((short)TRUE), // HasLegend.
COleVariant(""), // Title.
COleVariant("Time (hh:mm:ss)"),// CategoryTitle.
COleVariant("Temperature (°C)"),// ValueTitles.
covOptional // ExtraTitle.
);

CLegend legend;
legend.AttachDispatch(chart.GetLegend());


LegendEntries legendEntries;
lpDisp=legend.LegendEntries(COleVariant((short)1)); //运行时这一步错了,弹出一个空的警告框
legendEntries.AttachDispatch(lpDisp);
long k=legendEntries.GetCount();
wsprintf(ss,"%d",k);
AfxMessageBox(ss);
zgl7903 2018-12-11
  • 打赏
  • 举报
回复
需要引入 LegendEntries 类 或 #import 后 用 LegendEntriesPtr


zgl7903 2018-12-11
  • 打赏
  • 举报
回复
选中 LegendEntries 右键 去看定义, 然后找Count相关, 高版本的有时候会 get 会小写, getCount


hagx 2018-12-11
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
需要引入 LegendEntries 类 或 #import 后 用 LegendEntriesPtr

我引用了,在运行的时候出现,找不到成员,开始怀疑是excel版本问题,换了低版本和高版本都不对,要么是我的方法有问题,你有例子给我看下吗?谢谢

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧