Word inerop c#: поиск и замена звездочки в файле слова - PullRequest
1 голос
/ 07 апреля 2020

Я редактирую файлы слов, используя взаимодействие слов. Иногда эти файлы имеют кратные «*», которые я должен заменить программно. Итак, если есть две звездочки, я заменю их на нет. 2. Почему-то я не могу найти "*".

 Word.Range rngAff = doc.Content;    
 rngAff.Find.ClearFormatting();
 rngAff.Find.Font.Superscript = 1;
 rngAff.Find.Text = @"\*{1,}";
 while (rngAff.Find.Execute())
            {
              rngAff.Find.Replacement.Text = this.CountReplaceAsterisks()
            }

Каким-то образом команда выполнить не удалась. Как найти звездочки в файле слова?

1 Ответ

1 голос
/ 18 апреля 2020

Когда мне нужно заменить какой-либо символ в файле слова, я использую этот фрагмент кода, и у меня хороший результат:

class Program
{

  static void Main(string[] args)
  {
    SearchReplace();
  }


  private static void SearchReplace()
  {
    object missing = System.Reflection.Missing.Value;

    Application application = new Application();
    Microsoft.Office.Interop.Word.Document document = application.Documents.Add("C:\\Users\\test\\Desktop\\word.docx");

    Microsoft.Office.Interop.Word.Find findObject = application.Selection.Find;
    findObject.ClearFormatting();
    findObject.Text = "**";
    findObject.Replacement.ClearFormatting();
    findObject.Replacement.Text = "";

    object replaceAll = Microsoft.Office.Interop.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);

    object filename = "C:\\savefile.docx";
    document.SaveAs2(ref filename);;

    document.Close(ref missing, ref missing, ref missing);
    document = null;
    application.Quit(ref missing, ref missing, ref missing);
    application = null;
  }

}
...