Word Interop替换文字

时间:2015-10-20 03:50:52

标签: c# .net ms-word office-interop com-interop

我使用以下函数来查找和替换文本:

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true };

Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(fileName, ReadOnly: false, Visible: true);
            aDoc.Activate();
FindAndReplace(wordApp, "A", "B");

private void FindAndReplace(Microsoft.Office.Interop.Word.Application doc, object findText, object replaceWithText)
    {
        try
        {
            //options
            object matchCase = false;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundsLike = false;
            object matchAllWordForms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;
            object matchDiacritics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object read_only = false;
            object visible = true;
            object replace = 2;
            object wrap = 1;
            //execute find and replace
            doc.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord,
                ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceWithText, ref replace,
                ref matchKashida, ref matchDiacritics, ref matchAlefHamza, ref matchControl);
        }
        catch (Exception e)
        {
            throw e;
        }
    }

它工作正常,但我想知道是否有任何方法可以用其他风格格式化“A”替换文本“A”?我的意思是ex:将“A” FontColor =“Black”替换为“B” FontColor =“Red”
换句话说,我想知道是否可以改变文本“A”的颜色或用另一种颜色的“B”替换它。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用Word的查找/替换来更改格式和文本。获得所需语法的最佳方法是在Word宏中记录操作,然后将所需的属性记录到C#代码中。

Ctrl + H将显示“查找/替换”对话框。点击"更多"按钮以显示高级选项。将光标置于"替换"框,单击格式按钮访问格式化命令,字体颜色将在"字体"条目(对话框)。

当你查看录制的VBA代码时,查找Find.Replacement部分,其中"替换"将被列出。

在C#代码中,为Find声明一个对象并实例化它。例如:    Word.Find wdFind = Selection.Find;

将其与属性:wdFind.Replacement.Font.Color

一起使用

并在对象上执行find:wdFind.Execute(....