C#操作ppt的一个例子


//实现PPT文本查找功能

//关键代码

private void searchPPT(string[] keyWordList,string pptFileName)//在指定的ppt文档中搜索keyWord

{

//Microsoft powerpoint 11.0 object library这个是所添加的引用





showMsg(lbShowMsg,"启动搜索"+pptFileName);

//其中Presentation代表一个 PowerPoint 文档,Slide表示PowerPoint文档中的单张幻灯片

//TextFrame是幻灯片上的文本框,TextRange是文本框中的文本。

PowerPoint.ApplicationClass pa;

PowerPoint.Presentation pp;

pa=null;

pp=null;

try

{



showMsg(lbShowMsg,"尝试打开 "+pptFileName);



//打开ppt文档

pa=new PowerPoint.ApplicationClass();

pp=pa.Presentations.Open(pptFileName,

Microsoft.Office.Core.MsoTriState.msoTrue,

Microsoft.Office.Core.MsoTriState.msoTrue,Microsoft.Office.Core.MsoTriState.msoFalse);



PowerPoint.TextRange oText;

//总的幻灯片数

int slideCount=pp.Slides.Count;

//对每张幻灯片

foreach(PowerPoint.Slide slide in pp.Slides)

{



showMsg(lbShowMsg,"正在搜索"+pptFileName+" 幻灯片"+slide.SlideNumber.ToString()+"/"+slideCount);

//对所有的元素

foreach(PowerPoint.Shape shape in slide.Shapes)

{

//如果此幻灯片中有文本框

if(shape.HasTextFrame==Microsoft.Office.Core.MsoTriState.msoTrue)

{

//对每组关键字

foreach(string keyWord in keyWordList)

{

oText=null;

oText=shape.TextFrame.TextRange.Find



(keyWord,0,Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoTrue);

if (oText!=null)

{



string temp=pptFileName.Remove(0,pptFileName.LastIndexOf("\\")+1);

string name=temp.Remove(temp.LastIndexOf("."),4);

int index=slide.SlideNumber;

//添加到搜索结果中

lbResult.Items.Add(name+" 幻灯片"+index.ToString()+"/"+slideCount);

lbResult.Update();

resultText.Add(shape.TextFrame.TextRange.Text);

continue;

}

}

}

}

}



}



catch

{

}

finally

{

//释放资源

if(pp!=null)

{

System.Runtime.InteropServices.Marshal.ReleaseComObject(pp);

pp=null;

}

if(pa!=null)

{

System.Runtime.InteropServices.Marshal.ReleaseComObject(pa);

pa=null;

}





}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值