0

我将 Microsoft.Office.Interop.Word 与 C# 一起使用。我知道您可以使用 Range.Font.Bold=1 将文本设置为粗体。我的问题是我的句子很长,我必须将其中的一些单词加粗,而不是整个句子。如果我的句子是“您是否希望通过电子邮件将您的问题的回复发送给您?”,我希望“有回复”为粗体。

在这个例子中,我只能加粗一个单词(通过循环遍历整个 word 文档):

foreach(Microsoft.Office.Interop.Word.Range w in oDoc.Words)
{
    if (w.Text == "Something")
         w.Font.Bold = 1;
}

但这只是一个词,我怎么能在一个句子中使两个、三个或更多的连续词加粗。

4

2 回答 2

3

无需遍历整个文档。使用 Word.WdReplace.wdReplaceAll,类似于以下内容:

private void SearchReplace()
{
    Word.Find findObject = Application.Selection.Find;
    findObject.ClearFormatting();
    findObject.Text = "find me";
    findObject.Replacement.ClearFormatting();
    findObject.Replacement.Text = "Found";

    object replaceAll = Word.WdReplace.wdReplaceAll;
    findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing, ref missing,
        ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}

您可以在此处阅读有关它的更多信息:http: //msdn.microsoft.com/en-us/library/f65x8z3d.aspx

希望能帮助到你!

于 2012-03-23T14:02:44.477 回答
0

Look at this:

C#: Searching a Text in Word an getting the range of the result

Then you can make bold the found range.

于 2012-03-23T14:03:10.063 回答