程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#實現在PowerPoint文檔中搜索文本實現代碼

C#實現在PowerPoint文檔中搜索文本實現代碼

編輯:關於C#
 

用編程的方式根據對象模型很容易實現在WordExcel文檔中搜索文本,在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;
}
}
}
}
用編程的方式根據對象模型很容易實現在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;
}
}
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved