【问题标题】:Creating a new chart in PowerPoint 2013 with Chart Styles applied在 PowerPoint 2013 中创建应用了图表样式的新图表
【发布时间】:2015-03-18 10:21:53
【问题描述】:

在 PowerPoint 2013 中,当我手动将新图表插入幻灯片时,图表会自动应用图表样式“样式 1”。这具有将图表标签的字体大小设置为 12 的效果。

但是,如果我尝试使用以下 C# 代码将新图表添加到 PowerPoint 2013,则不会应用图表样式:

var ppt = new Microsoft.Office.Interop.PowerPoint.Application();
var presentation = ppt.Presentations.Add();
var layout = Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutChart;
var slide = presentation.Slides.Add(1, layout);
var shapes = slide.Shapes;
shapes.AddChart();

字体大小似乎默认为 18。有什么方法可以创建图表或使用 Interop 设置图表样式,以便与手动生成的图表匹配(即应用了图表样式)?

我知道 C# - Excel 2013 how to change chart style 中提到的 Chart.ChartStyle 属性,但它似乎只改变图表颜色和图例位置,而不是字体大小。 PowerPoint 中没有宏记录器,因此我无法生成 VBA 代码来复制创建新图表的操作。

【问题讨论】:

  • 提示:在 Excel 中使用宏记录器。两者之间的图表对象模型非常相似。您需要调整结果,但这会给您一个良好的开端。
  • 感谢您的建议。 Excel 记录器说我应该使用 ChartStyle 属性,它会更改图表颜色和图例位置,但不会更改标签的字体大小。是的,可以分别更改轴标签、图例和数据标签的字体大小,但我希望有一种更优雅的方法可以避免这种情况。
  • 我不相信有。我们得到了力量,我们得到了蛮力。我不认为我们变得优雅。

标签: c# powerpoint office-interop


【解决方案1】:

似乎在设置ChartStyle 后调用ClearToMatchStyle() 会应用我所追求的字体样式更改:

var ppt = new Microsoft.Office.Interop.PowerPoint.Application();
var presentation = ppt.Presentations.Add();
var layout = Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutChart;
var slide = presentation.Slides.Add(1, layout);
var shapes = slide.Shapes;
var chart_shape = shapes.AddChart();
chart_shape.Chart.ChartStyle = 201;
chart_shape.Chart.ClearToMatchStyle();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多