Как сделать чтобы замена текста в 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);
             }

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


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

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

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