C # Найти и удалить все вхождения стиля Word - PullRequest
1 голос
/ 26 июня 2019

В документе Word я хотел бы найти все вхождения стиля и удалить их, то есть удалить весь текст, к которому применяется стиль. Это стиль символа, поэтому его можно применять к одному слову или ко всем словам в абзаце.

Это то, что я имею до сих пор:

public void removeStyle(Microsoft.Office.Interop.Word.Document document, string styleName)
{
    Microsoft.Office.Interop.Word.Range rng = document.Range();

    Microsoft.Office.Interop.Word.Style style = null;

    foreach (Microsoft.Office.Interop.Word.Style currentStyle in document.Styles)
    {
        if (currentStyle.NameLocal == "Only CZ")
            style = currentStyle;
    }

    rng.Find.ClearFormatting();
    rng.Find.Replacement.ClearFormatting();

    rng.Find.set_Style(style);
    rng.Find.Forward = true;
    rng.Find.Wrap = Microsoft.Office.Interop.Word.WdFindWrap.wdFindStop;

    //change this property to true as we want to replace format
    rng.Find.Format = true;

    rng.Find.Execute(Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll);
}

РЕДАКТИРОВАТЬ: Метод выше работает только тогда, когда стиль применяется ко всем абзацам, но не применительно к отдельным словам.

...