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

用C#实现在PowerPoint文档中搜索文本,第1张

用C#实现在PowerPoint文档中搜索文本,第2张

根据对象模型,通过编程很容易在Word和Excel文档中搜索文本,在PowERPoint中也是如此。使用对象模型有助于我们理解Office的文档结构。

搜索思路和方法基本相同。用PowerPoint application对象打开指定的文档,用document对象获取文档,然后用合适的对象将文档分成中等搜索范围的对象进行搜索。

打开VBA帮助文档VBAPP10。PowerPoint的CHM。根据对象模型图,很容易找到我们需要的几个集合和对象:Application、Presentations、Presentation、Slides、Slide、TextFrame、TextRange。Presentation代表PowerPoint文档,Slide代表PowerPoint文档中的单张幻灯片,TextFrame是幻灯片上的文本框,TextRange是文本框中的文本。

打开PowerPoint文档:

字符串文件名= " ";

PowerPoint。应用程序pa =新PowerPoint。application class();
PowerPoint。演示文稿pp=pa。演示文稿。打开(文件名,
Microsoft。office . core . MSO tristate . MSO true,
微软。Microsoft . office . core . MSO tristate . MSO false。office . core . MSO tristate . MSO false);

Open()方法的第三个参数在帮助文档中描述如下:

无标题是可选的。MsoTriState类型。指定文件是否有标题。

因为是无标题的,所以根据上面的代码,在打开文档之前,不能引用PowerPoint文档的标题。如果不想使用标题,应该将枚举msoFalse改为msoTrue。
搜索文本:


string[]strKeyWordList = { };//要搜索的文本
PowerPoint . textrangeotext;
foreach(PowerPoint。在pp中滑动幻灯片。幻灯片)
{
foreach(PowerPoint。幻灯片中的形状形状。shapes)
{
foreach(strKeyWordList中的string strKeyWord)
{
oText = null;
oText=shape。text frame . text range . find(strKeyWord,0,Microsoft。微软office . core . MSO tristate . MSO false。office . core . MSO tristate . MSO true);
if (oText!= null)
{
messagebox . show("文档包含指定的关键字"+strKeyWord+"!",“搜索结果”,MessageBoxButtons。OK);
继续;
}
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用C#实现在PowerPoint文档中搜索文本

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情