Замена нескольких слов в ворде - 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();