搜索整个word文档中的单词而不打开它

时间:2015-08-17 06:43:28

标签: c# winforms office-interop

我想在不打开文字的情况下搜索整个单词文档中的单词。

我在每个网站搜索并阅读所有问题,但使用此代码时出错(使用Range Object

object findText = "find me";

Word.Range rng = this.Paragraphs[2].Range; 

rng.Find.ClearFormatting();

if (rng.Find.Execute(ref findText,
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref missing, ref missing)) 
{ 
    MessageBox.Show("Text found.");
} 
else 
{ 
    MessageBox.Show("Text not found.");
} 

rng.Select(); 

但我在

中有错误
Paragraphs[2]

打开大文件时。错误是:

  

ref missing

1 个答案:

答案 0 :(得分:1)

您应该使用

计算整个文档中的段落编号
int docc = wordfile.Paragraphs.Count;

因此,当您打开大文件时,它将计算文件中的所有段落。 然后在范围代码中使用((docc))

Range rng = wordfile.Paragraphs[docc].Range;

您可以使用的第二个错误((Type.Missing))而不是((ref missing))

所以代码将是

object findText = "find me";
int docc = wordfile.Paragraphs.Count;
Range rng = wordfile.Paragraphs[docc].Range;
rng.Find.ClearFormatting();

if (rng.Find.Execute(ref findText,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
Type.Missing, Type.Missing)) 
 { 
  MessageBox.Show("Text found.");
 } 
else 
{ 
 MessageBox.Show("Text not found.");
} 

rng.Select();