C# Word 查找替换操作

转自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);
}


 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值