C# Microsoft.Office.Interop.Word

本文关键字:Word Interop Office Microsoft | 更新日期: 2023-09-27 18:28:52

我正在将Microsoft.Office.Interop.Word与C#一起使用。我知道您可以使用Range.Font.bold=1将文本设置为粗体。我的问题是我有一个很长的句子,我必须把一些单词加粗,而不是整句。如果我的句子是"你想通过电子邮件回复你的问题吗?",我希望"有回复"用粗体。

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

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

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

C# Microsoft.Office.Interop.Word

无需遍历整个文档。使用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

希望它能有所帮助!

看看这个:

C#:在Word中搜索文本并获取结果的范围

然后您可以将找到的范围加粗。