Как сделать чтобы замена текста в 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д