使用C#以编程方式访问powerpoint对象

时间:2016-04-25 11:39:59

标签: c# templates powerpoint

我正在访问C#中的ppt模板,并根据数据以编程方式创建自定义输出。

Microsoft.Office.Interop.PowerPoint.Presentations objPresSet = null;
Microsoft.Office.Interop.Graph.Chart chart = null;
Microsoft.Office.Interop.Graph.DataSheet dataSheet = null;

objPres = objPresSet.Open(@"C:\Sample PPT application\WebSite4\WebSite4\2_Soundbite1.pptx", MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
Microsoft.Office.Interop.PowerPoint._Slide objSlide = null;
objSlide = objPres.Slides[1];



foreach (Microsoft.Office.Interop.PowerPoint.Shape prefixShape in objSlide.Shapes)
{
    chart = (Microsoft.Office.Interop.Graph.Chart)prefixShape.OLEFormat.Object;
    dataSheet = chart.Application.DataSheet;
}

现在以防万一,模板的类型为' .ppt'然后,如上所使用的OLEFormat.Object确实存在,就像' .pptx'一样,它会出现以下错误

  

OLEFormat(未知成员):无效的请求。这个属性   适用于OLE对象。

无法识别它,我搜索了msdn以及其他网站,但没有人区分' .ppt'和' .pptx'。

在链接Creating PowerPoint presentations programmatically中,它提到我们可以通过编程方式编写一个powerpoint,我面临的问题是,当扩展名是' .ppt'时,我能够做同样的事情。而对于' .pptx',我无法访问模板中使用的图表和图形,因为用于访问图表的OLEFormat.Object在' .pptx&的情况下不起作用#39;,我错过了一些dll for' .pptx'支持,我目前正在使用'汇编Microsoft.Office.Interop.PowerPoint.dll,v2.0.50727'

1 个答案:

答案 0 :(得分:0)

objSlide[1].Shapes["myObjectNameInsideSlide1"].TextFrame.TextRange.Text = "Kiko";

以上代码将访问幻灯片1中的文本框/形状