首页 > 开发 > 综合 > 正文

用C#在PowerPoint文档中搜索文本

2024-07-21 02:26:47
字体:
来源:转载
供稿:网友

用编程的方式根据对象模型很容易实现在word、excel文档中搜索文本,在powerpoint里面也同样如此,使用对象模型有助于我们了解office的文档结构。

  搜索的思路和方法基本是一样的,用powerpoint应用程序对象打开指定的文档,用文档对象获取文档,再使用合适的对象将文档分割成搜索范围适中的对象进行搜索。

  打开powerpoint的vba帮助文档vbapp10.chm,根据对象模型图,很容易找到我们需要的几个集合和对象:application、presentations、presentation、slides、slide、textframe、textrange。其中presentation代表一个 powerpoint 文档,slide表示powerpoint文档中的单张幻灯片,textframe是幻灯片上的文本框,textrange是文本框中的文本。

  打开powerpoint文档:
  

  string filename="";

  
  powerpoint.application pa=new powerpoint.applicationclass();

  powerpoint.presentation pp=pa.presentations.open(filename,

   microsoft.office.core.msotristate.msotrue,

   microsoft.office.core.msotristate.msofalse,

   microsoft.office.core.msotristate.msofalse);

    open()方法的第三个参数在帮助文档中的说明如下:

  untitled 可选。msotristate 类型。指定文件是否有标题。

  

 

  因为是untitled,所以按照上面的代码,打开文档之后才能引用powerpoint文档的标题,如果不想使用标题,就要把枚举msofalse改成msotrue。

  搜索文本:

  string[] strkeywordlist={}; //要搜索的文本

  powerpoint.textrange otext;

  foreach(powerpoint.slide slide in pp.slides)

  {

   foreach(powerpoint.shape shape in slide.shapes)

   {

   foreach(string strkeyword in strkeywordlist)

   {

   otext=null;

   otext=shape.textframe.textrange.find(strkeyword,0,microsoft.office.core.msotristate.msofalse,microsoft.office.core.msotristate.msotrue);

   if (otext!=null)

   {

   messagebox.show("文档中包含指定的关键字 "+strkeyword+" !","搜索结果",messageboxbuttons.ok);

   continue;

   }

   }

   }

  }

 

 



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表