Замена нескольких слов в ворде - C#

Узнай цену своей работы

Формулировка задачи:

Имеется вот такой код, но делает замену только одного выражения, а их несколько, есть мысль засунуть это все в метод и перегонять уже в методе только входные данные, но опять же постоянное закрытие и открытие докмента, мне кажется не есть хорошо, может будут какие то предложение на это счет?
Word.Application app = new Word.Application();
            Object fileName = @"D:\Внимание.docx";
            Object missing = Type.Missing;
            app.Documents.Open(ref fileName);
            Word.Find find = app.Selection.Find;
            
            find.Text = "?это";
            find.Replacement.Text = "меняем";
            Object wrap = Word.WdFindWrap.wdFindContinue;
            Object replace = Word.WdReplace.wdReplaceAll;
            find.Execute(FindText: Type.Missing,
                MatchCase: false,
                MatchWholeWord: false,
                MatchWildcards: false,
                MatchSoundsLike: missing,
                MatchAllWordForms: false,
                Forward: true,
                Wrap: wrap,
                Format: false,
                ReplaceWith: missing, Replace: replace);
           
            app.ActiveDocument.Save();
            app.ActiveDocument.Close();
            app.Quit();

Решение задачи: «Замена нескольких слов в ворде»

textual
Листинг программы
Word.Application app = new Word.Application();
            Object fileName = @"D:\Внимание.docx";
            Object missing = Type.Missing;
            app.Documents.Open(ref fileName);
            Word.Find find = app.Selection.Find;
            
            
            string[] array = new string[2];
            string[] array1 = new string[2];
            array[0] = "?замена1";
            array1[0] = "заменен1";
            array[1] = "?замена2";
            array1[1] = "заменен2";
      
            for (int i = 0; i < array.Length; i++)
            {
                find.Text = array[i];
                find.Replacement.Text =array1[i];
                Object wrap = Word.WdFindWrap.wdFindContinue;
                Object replace = Word.WdReplace.wdReplaceAll;
                find.Execute(FindText: Type.Missing,
               MatchCase: false,
               MatchWholeWord: false,
               MatchWildcards: false,
               MatchSoundsLike: missing,
               MatchAllWordForms: false,
               Forward: true,
               Wrap: wrap,
               Format: false,
               ReplaceWith: missing, Replace: replace);
                
           
            }
            app.ActiveDocument.Save();
            app.ActiveDocument.Close();
            app.Quit();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.667 из 5
Похожие ответы