我正在访问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”,我无法访问模板中使用的图表,因为在“..pptx”的情况下,用于访问图表的OLEFormat.Object无法工作,如果出现“..pptx”,则会丢失一些用于“.pptx”支持的dll,我目前使用的是“AssemblyMicrosoft.Office.Interop.PowerPoint.dll,v2.0.50727”。
发布于 2018-01-11 15:01:56
objSlide[1].Shapes["myObjectNameInsideSlide1"].TextFrame.TextRange.Text = "Kiko";
以上代码将访问幻灯片1中的文本框/形状。
https://stackoverflow.com/questions/36839511
复制相似问题