C#检查Powerpoint中是否存在某种形状

时间:2016-06-15 14:24:36

标签: c# shapes

我试图找出,如果Powerpoint演示文稿中存在某个Shape。我是C#的新手,不知道如何循环遍历所有形状。我尝试了foreach循环,却无处可去。这是我得到的:

using pptNS = Microsoft.Office.Interop.PowerPoint;

...

    pptNS.Slide pptSlide = null;
    bool shapeCheck = false;
    pptNS.Presentation pptPresentation = null;

try
    {
        // Create an instance of PowerPoint.
        powerpointApplication = new pptNS.ApplicationClass();

        pptPresentation = powerpointApplication.Presentations.Open([pptAddress]);

        foreach (pptNS.Shapes sh in pptSlide.Shapes)
        {
            if (sh.Title.Equals("SlideID"))
            {
                shapeCheck = true;
            }
        }
}
    catch (Exception ex)

但显然这会引发System.InvalidCastException。在foreach循环中有人知道我应该使用什么而不是pptSlide.Shapes吗?或者另一种检查某种形状是否存在的方法?

1 个答案:

答案 0 :(得分:0)

我认为你应该改变这个:

foreach (pptNS.Shapes sh in pptSlide.Shapes)

到此:

foreach (var sh in pptSlide.Shapes)