• 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();
        }

  • 相关阅读:
    【Tomcat】使用Eclipse发布项目时,项目启动路径错误。
    Unsupported major.minor version 52.0
    【转载】设置event.cancelBubble,使触发子元素的onclick不同时触发父元素的onclick
    【MG】测试
    【Tomcat】使用Eclipse运行Tomcat7源码
    【微信公众号】WeixinJSBridge.call('closeWindow')无效
    【微信公众号】使用a标签打开链接显示空白
    【JAVA】导出jar包时,Class files on classpath not found
    【JAVA】修改项目包名
    lesson3.1:java公平锁和非公平锁及读写锁
  • 原文地址:https://www.cnblogs.com/swarb/p/9924395.html
Copyright © 2020-2023  润新知