C# 在PowerPoint 2013中使用应用的图表样式创建新图表

C# 在PowerPoint 2013中使用应用的图表样式创建新图表,c#,powerpoint,office-interop,C#,Powerpoint,Office Interop,在PowerPoint 2013中,当我手动将新图表插入幻灯片时,图表会自动应用图表样式“样式1”。这具有将图表标签的字体大小设置为12的效果 但是,如果我尝试使用以下C#代码将新图表添加到PowerPoint 2013,则不会应用任何图表样式: 字体大小似乎默认为18。是否有任何方法可以使用Interop创建图表或设置图表样式,以便与手动生成的图表匹配(即应用了图表样式) 我知道中提到的Chart.ChartStyle属性,但它似乎只更改图表颜色和图例位置,而不更改字体大小。PowerPoin

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

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

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


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

似乎在设置
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();

提示:使用Excel中的宏记录器。两者之间的图表对象模型非常相似。你需要调整结果,但这会给你一个好的开始。谢谢你的建议。Excel记录器说我应该使用ChartStyle属性,它可以更改图表颜色和图例位置,但不会更改标签的字体大小。是的,可以分别更改轴标签、图例和数据标签的字体大小,但我希望有一种更优雅的方式来避免这种情况。我不相信有。我们有武力,我们有蛮力。我认为我们没有优雅。
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();