我试图找出,如果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
吗?或者另一种检查某种形状是否存在的方法?
答案 0 :(得分:0)
我认为你应该改变这个:
foreach (pptNS.Shapes sh in pptSlide.Shapes)
到此:
foreach (var sh in pptSlide.Shapes)