zoukankan      html  css  js  c++  java
  • c#读Word文件,最后彻底释放资源

    我顶 字号:

    private void button5_Click(object sender, System.EventArgs e)
        {
          object filename="D:\\nettest\\window\\serial\\a.doc"; //要打开的文档路径
          string strKey="正文"; //要搜索的文本
          object MissingValue=Type.Missing;
          object oMissing = System.Reflection.Missing.Value;

          Word.Application wp=new Word.ApplicationClass();
    Word.Document wd=wp.Documents.Open(ref filename,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);

          if (wd.Content.Text.IndexOf(strKey)>=0)
          {
            MessageBox.Show("文档中包含指定的关键字!","搜索结果",MessageBoxButtons.OK);
          }
          else
          {
            MessageBox.Show("文档中没有指定的关键字!","搜索结果",MessageBoxButtons.OK);
          }
          wd.Close(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (wd);
          wd = null;

          wp.Quit(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (wp);
          wp = null;
          System.GC.Collect();
        }

        private void button6_Click(object sender, System.EventArgs e)
        {
          object filename="D:\\nettest\\window\\serial\\a.doc"; //要打开的文档路径
          string strKey="正文"; //要搜索的文本
          object MissingValue=Type.Missing;
          object oMissing = System.Reflection.Missing.Value;

          Word.Application wp=new Word.ApplicationClass();
          Word.Document wd=wp.Documents.Open(ref filename,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);

          wd.Content.Find.Text=strKey;
          if (wd.Content.Find.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))
          {
            MessageBox.Show("文档中包含指定的关键字!","搜索结果",MessageBoxButtons.OK);
          }
          else
          {
            MessageBox.Show("文档中没有指定的关键字!","搜索结果",MessageBoxButtons.OK);
          }
          wd.Close(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (wd);
          wd = null;

          wp.Quit(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (wp);
          wp = null;
          System.GC.Collect();
        }

        private void button7_Click(object sender, System.EventArgs e)
        {
          object filename="D:\\nettest\\window\\serial\\a.doc"; //要打开的文档路径
          string strKey="正文"; //要搜索的文本
          object MissingValue=Type.Missing;
          object oMissing = System.Reflection.Missing.Value;

          Word.Application wp=new Word.ApplicationClass();
          Word.Document wd=wp.Documents.Open(ref filename,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);

          wd.Content.Find.Text=strKey;
          int i=0,iCount=0;
          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=strKey;
              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))
              {
    MessageBox.Show("文档中包含指定的关键字!","搜索结果",MessageBoxButtons.OK);
                break;
              }
            }
          }
          wd.Close(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (wd);
          wd = null;

          wp.Quit(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (wp);
          wp = null;
          System.GC.Collect();
        }

  • 相关阅读:
    __setattr__,__getattr__,__delattr__
    LeetCode 面试题42. 连续子数组的最大和
    LeetCode 53. 最大子序和
    LeetCode 面试题39. 数组中出现次数超过一半的数字
    LeetCode 169. 多数元素
    LeetCode 426.将二叉搜索树转化为排序的双向链表
    LeetCode 面试题36. 二叉搜索树与双向链表
    LeetCode 面试题35. 复杂链表的复制
    LeetCode 138. 复制带随机指针的链表
    LeetCode 面试题34. 二叉树中和为某一值的路径
  • 原文地址:https://www.cnblogs.com/swarb/p/9924395.html
Copyright © 2011-2022 走看看