word中如何进行关键词检索

如题所述

第1个回答  2020-11-13
第2个回答  2011-04-18
编辑-查找-查找下一处
第3个回答  2011-04-18
重发调试通过的代码:
/// <summary>
/// search in a DOC file(查询DOC文件的内容)
/// </summary>
/// <param name= "fileName "> </param>
/// <param name= "searchForText "> 要搜索的文本 </param>
/// <param name= "CaseSensitive "> 是否区分大小写 </param>
/// <returns> </returns>
public static bool SearchInDoc(string fileName,string searchForText,bool CaseSensitive)
{
bool Result = (searchForText.Length == 0);
object filename = fileName; //要打开的文档路径
object MissingValue=System.Reflection.Missing.Value;//Type.Missing;
object readOnly = false;
Microsoft.Office.Interop.Word.Application wp = null;
Microsoft.Office.Interop.Word.Document wd = null;

try
{
wp = new Microsoft.Office.Interop.Word.ApplicationClass();
wd = wp.Documents.Open(ref filename,ref MissingValue,
ref readOnly,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue);

int i=0,iCount=0;
Microsoft.Office.Interop.Word.Find wfnd;

if (wd.Paragraphs != null && wd.Paragraphs.Count> 0)
{
iCount = wd.Paragraphs.Count;
for(i=1;i <=iCount;i++)
{
wfnd=wd.Paragraphs[i].Range.Find;
wfnd.ClearFormatting();
wfnd.Text = searchForText;
if (wfnd.Execute(ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue))
{
Result = true;
break;
}
}
}
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if(wd != null)
{
wd.Close(ref nullobj,ref nullobj,ref nullobj);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wd);
wd = null;
}

if(wp != null)
{
wp.Quit(ref nullobj,ref nullobj,ref nullobj);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wp);
wp = null;
}

GC.Collect();
}

return Result;
}
相似回答