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