C# Word 查找替换操作

转载 2016年08月31日 16:42:18

转自http://blog.chinaunix.net/uid-25498312-id-4149333.html

参考网上大部分提供的word查找替换的方法,昨天还好使,今天wordDoc.Content.Find.Execute函数的返回值就变成false了,目前还没有找到原因

然后搜索了多篇博客,终于找到一个比较好的方法,见上面博客链接


好使的查找替换方法

<pre name="code" class="csharp">Dictionary<string, string> datas = new Dictionary<string, string>();
datas.Add("{管养县区}", "XX县");
datas.Add("{报告日期}", "二零一六年九月");
datas.Add("{报告年份}", "2016年");
object replaceAll = MSWord.WdReplace.wdReplaceAll;
foreach (var item in datas)
{
    object myFind = wordDoc.Content.Find;
    object findText = item.Key;
    object replaceText = item.Value;
    object oMissing = System.Reflection.Missing.Value;
    try
    {
        object[] Parameters;
        Parameters = new object[15];
        Parameters[0] = findText;
        Parameters[1] = Missing.Value;
        Parameters[2] = Missing.Value;
        Parameters[3] = Missing.Value;
        Parameters[4] = Missing.Value;
        Parameters[5] = Missing.Value;
        Parameters[6] = Missing.Value;
        Parameters[7] = Missing.Value;
        Parameters[8] = Missing.Value;
        Parameters[9] = replaceText;
        Parameters[10] = replaceAll;
        Parameters[11] = Missing.Value;
        Parameters[12] = Missing.Value;
        Parameters[13] = Missing.Value;
        Parameters[14] = Missing.Value;
        myFind.GetType().InvokeMember("Execute", BindingFlags.InvokeMethod, null, myFind, Parameters);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

不好使的替换方法

<pre name="code" class="csharp">Dictionary<string, string> datas = new Dictionary<string, string>();
datas.Add("{管养县区}", "县");
datas.Add("{报告日期}", "二零一六年九月");
datas.Add("{报告年份}", "2016年");
object replaceAll = MSWord.WdReplace.wdReplaceAll;
foreach (var item in datas)
{
    wordDoc.Content.Find.Replacement.ClearFormatting();
    wordDoc.Content.Find.ClearFormatting();
    wordDoc.Content.Find.Text = item.Key;//需要被替换的文本
    wordDoc.Content.Find.Replacement.Text = item.Value;//替换文本 

    //执行替换操作
    bool temp = wordDoc.Content.Find.Execute(
    Missing.Value, Missing.Value,
    Missing.Value, Missing.Value,
    Missing.Value, Missing.Value,
    Missing.Value, Missing.Value, Missing.Value,
    Missing.Value, ref replaceAll,
    Missing.Value, Missing.Value,
    Missing.Value, Missing.Value);
}





C# 替换Word文字【包含页眉、页脚、文本框、普通文字的替换】

2015-6-5 11:52备注 关于下面用micsoft处理word替换的说明,使用micsoft自带的com组件处理起来后期会有部署到服务器会出一些奇奇怪怪的问题,什么呼叫失败,标识不正确什么的...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C# 在word中查找及替换文本

在处理word文档时,很多人都会用到word提供的查找和替换功能。尤其是在处理庞大的word文档的时候,Microsoft word的查找替换功能就变得尤为重要,它不仅能让我们轻易地查找到整篇文章里的...

C#操作office之word文本替换,只能实现替换其中一个,可以替换超长文本

C#操作office之word文本替换,只能实现替换其中一个,可以替换超长文本 由于word文本替换长度不能超过255,所以当替换文本超过255就将它分段替换 首先引用相关组件: using...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

c#对word操作的查找替换功能

expression.Execute(FindText,   MatchCase,   MatchWholeWord,  MatchWildcards,   MatchSoundsLike,   Ma...

asp.net C#.net操纵word,实现全文检索 ,.net word全文检索

一。 添加引用 二。aspx 文件:...@ Page Language="C#" AutoEventWireup="true" CodeFile="word.aspx.cs" Inherits="w...
  • ganmk
  • ganmk
  • 2008年04月18日 18:32
  • 3857

winform 替换word中指定内容

需要引用两个dll:Interop.Microsoft.Office.Core.dll和Microsoft.Office.Interop.Word.dll (可以到我的资源里面去下载) try  ...

c# word替换(Find.Excute方法)操作 去除空行方法

现在的项目有个功能是要替换掉word文档中的空格,搜索了半天得到一个方法是在word内全局替换^p^p为^p,这样就可以消除一遍空格,当然如果有连续的空格时,需要连续替换几次就可以了。现在有了方法就好...
  • wwei466
  • wwei466
  • 2011年06月30日 21:34
  • 2238

executeFind()方法和execute()方法区别

返回类型不同:executeFind()方法返回集合,execute()方法返回对象executeFind@Override public List getCpContactByPage(fi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# Word 查找替换操作
举报原因:
原因补充:

(最多只允许输入30个字)