我正在访问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'
答案 0 :(得分:0)
objSlide[1].Shapes["myObjectNameInsideSlide1"].TextFrame.TextRange.Text = "Kiko";
以上代码将访问幻灯片1中的文本框/形状