C # Microsoft.Office.Interop.Word - PullRequest
       48

C # Microsoft.Office.Interop.Word

0 голосов
/ 23 марта 2012

Я использую 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;
}

Но это только для одного слова, как я могу выделить два, три или более слова подряд в предложении.

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Нет необходимости перебирать весь документ. Используйте 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

Надеюсь, это поможет!

0 голосов
/ 23 марта 2012

Посмотрите на это:

C #: поиск текста в Word для получения диапазона результата

Затем вы можете выделить жирным шрифтом найденный диапазон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...