benben 发表于 2013-2-5 02:32:10

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

<div class="cnt">在word应用程序中搜索和替换文本是举手之劳的事情,通过word的对象模型,我们也可以使用编程方式来实现。   Word的对象模型有比较详细的帮助文档,放在office安装程序目录,office 2003是在Program Files\Microsoft Office\OFFICE11\2052下,文档本身是为VBA提供的,在这个目录下还可以看到所有的office应用程序的VBA帮助。
  打开VBAWD10.CHM,看到word的对象模型,根据以往的使用经验,很容易在Document对象下找到Content属性,该属性会返回一个文档文字部分的Range对象,从这个对象中不难取到所有的文档内容,再用string的IndexOf()方法很容易达到目标。
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gifobject filename="http://www.cnblogs.com/Images/dot.gif";    //要打开的文档路径
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gifstring strKey="http://www.cnblogs.com/Images/dot.gif";      //要搜索的文本
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gifobject MissingValue=Type.Missing;
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gifWord.Application wp=new Word.ApplicationClass();
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gifWord.Document wd=wp.Documents.Open(ref filename,ref MissingValue,
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif               ref MissingValue,ref MissingValue,
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif               ref MissingValue,ref MissingValue,
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif               ref MissingValue,ref MissingValue,
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif               ref MissingValue,ref MissingValue,
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif               ref MissingValue,ref MissingValue,
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif               ref MissingValue,ref MissingValue,
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif               ref MissingValue,ref MissingValue);
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gifif (wd.Content.Text.IndexOf(strKey)>=0)
http://itwalker.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://itwalker.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://itwalker.cnblogs.com/Images/OutliningIndicators/InBlock.gif     MessageBox.Show("文档中包含指定的关键字!","搜索结果",MessageBoxButtons.OK);
http://itwalker.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gifelse
http://itwalker.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://itwalker.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://itwalker.cnblogs.com/Images/OutliningIndicators/InBlock.gif     MessageBox.Show("文档中没有指定的关键字!","搜索结果",MessageBoxButtons.OK);
http://itwalker.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif
http://itwalker.cnblogs.com/Images/OutliningIndicators/None.gif
页: [1]
查看完整版本: 用C#实现在Word文档中搜索文本