Как сделать чтобы замена текста в WORD производилась по всему документу - C#
Формулировка задачи:
Сделал программу для выгрузки текста в шаблон Word с переменными. Как сделать чтобы все переменные в текте заменялись? получается что переменная {doc} в самом верху заменилась, а все остальные переменные {doc} которые ниже остались неизменными.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using Word = Microsoft.Office.Interop.Word; namespace WindowsFormsApplication9 { public partial class Form1 : Form { private readonly string TemplateFileName = @"C:\Шаблоны\Договор.doc"; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var kontr = textBox1.Text; var dog = textBox2.Text; var data1 = dateTimePicker1.Text; var data2 = dateTimePicker2.Text; var ruk = comboBox1.Text; var f = textBox3.Text; var i = textBox4.Text; var o = textBox5.Text; var datar = dateTimePicker3.Text; var gr = comboBox2.Text; var prbez = comboBox3.Text; var izj = comboBox4.Text; var datab = dateTimePicker4.Text; var dataot = dateTimePicker5.Text; var datado = dateTimePicker6.Text; var prof = textBox8.Text; var chas = textBox9.Text; var summa = textBox10.Text; var richtext = richTextBox1.Text; //TODO: Word Export var wordApp = new Word.Application(); wordApp.Visible = false; try { var wordDocument = wordApp.Documents.Open(TemplateFileName); ReplaceWordStub("{dog}", dog, wordDocument); ReplaceWordStub("{kontr}", kontr, wordDocument); ReplaceWordStub("{data1}", data1, wordDocument); ReplaceWordStub("{data2}", data2, wordDocument); ReplaceWordStub("{ruk}", ruk, wordDocument); ReplaceWordStub("{f}", f, wordDocument); ReplaceWordStub("{i}", i, wordDocument); ReplaceWordStub("{o}", o, wordDocument); ReplaceWordStub("{datar}", datar, wordDocument); ReplaceWordStub("{gr}", gr, wordDocument); ReplaceWordStub("{prbez}", prbez, wordDocument); ReplaceWordStub("{izj}", izj, wordDocument); ReplaceWordStub("{datab}", datab, wordDocument); ReplaceWordStub("{dataot}", dataot, wordDocument); ReplaceWordStub("{datado}", datado, wordDocument); ReplaceWordStub("{prof}", prof, wordDocument); ReplaceWordStub("{chas}", chas, wordDocument); ReplaceWordStub("{summa}", summa, wordDocument); ReplaceWordStub("{richtext}", richtext, wordDocument); wordDocument.SaveAs(@"c:\result.doc"); wordApp.Visible = true; } catch { MessageBox.Show("Произошла ошибка"); } } private void ReplaceWordStub(string StubToReplace, string text, Word.Document wordDocument) { var range = wordDocument.Content; range.Find.ClearFormatting(); range.Find.Execute(FindText: StubToReplace, ReplaceWith: text); } } }
Решение задачи: «Как сделать чтобы замена текста в WORD производилась по всему документу»
textual
Листинг программы
//Открываем var dialog = new OpenFileDialog() { Filter = "Word файлы(*.docx)|*.docx", Title = "Открыть Wprd файл", }; if (dialog.ShowDialog() == DialogResult.OK) { var wordApp = new Word.Application; var wordDocument = wordApp.Documents.Open(dialog.FileName); } //сохраняем var dialog = new SaveFileDialog { Filter = "Word files (*.doc)|*.doc", Title = "Сохранить документ как Word-файл" }; if (dialog.ShowDialog() == DialogResult.OK) { wordDocument.SaveAs(dialog.FileName); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д