c#.net中通过关键字检索指定文件夹中的word文档

添加引用:COM下的Microsoft Word 11.0 Object Liabrary

private static object nullobj = System.Reflection.Missing.Value;

/// <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.MatchCase = CaseSensitive;
                        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;
        }

 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值