Bu yazımda C# ve .Net 3.5 yardımı ile Microsoft Word belgesindeki bir degeri bulup değiştireceğiz. Bu işlemi bir uygulamada dökümanı yazdırıken bazı alanları değiştirerek dinamik bir word döküman oluşturabilirsiniz. Bir projede dinamik word dökümanı oluşturulması gerekiyordu ben bu şekilde bir çözüm ürettim ve sizlerinde ihtiyacı olabileceğini düşündüm.
Visual Studio 2008 de bir Windows Forms Application açarak işlemlere başlayalım. İlk olarak Solution Explorer da projemize sağ tıklayara Add Referance diyerek
Microsoft Word 12.0 Objet Library refesans olarak ekleyelim. Bende Office 2007 kurulu olduğundan dolayı ben
Microsoft Word 12.0 Objet Library ekledim sizde farklı bir office sürümü varsa bu değişebilir. (Mesala Office 2003 için
Microsoft Word 11.0 Objet Library gibi.)

Referansımızı ekledikten sonra kullanabilmek için aşağıdaki isim alanlarını ekleyelim. İsim alanlarınıda ekledikten sonra formumuzun üzerine bir adet Button ve bir adet de OpenFileDialog kontrolü ekleyerek kodlarımızı yazmaya başlayalım.
using System.Reflection;
using Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;
Bir word belgesi açarak içeriğini aşağıdaki gibi düzenleyelim;
Adı: <Adi>
Soyadı: <Soyadi>
Telefon: <Telefon>
e-posta: <eposta>
Küçük büyük işareti ve arasındaki kelimeyi buldurup değiştirteceğiz. Bunun için bir BulveDegistir isminde bir metot oluşturuyoruz ve içeriği aşağıdaki gibi düzenliyoruz.
private void BulveDegistir(Word.Application WordApp, object findText, object replaceText)
{
bject matchCase = true;
object matchWholeWord = true;
object matchWildCards = false;
object matchSoundsLike = false;
object matchAllWordForms = false;
object forward = true;
object format = false;
object matchKashida = false;
object matchDiacritics = false;
object matchAlefHamza = false;
object matchControl = false;
object read_only = false;
object visible = true;
object replace = 2;
object wrap = 1;
WordApp.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord, ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceText, ref replace, ref matchKashida, ref matchDiacritics, ref matchAlefHamza, refmatchControl);
}
Bu metoda aranacak ve değiştirilecek kelimeleri yollayarak bulup ve değiştirmesini sağlıyoruz.
Formumuzda bulunan button1 in click event'i ise aşagıdaki gibi olacak.
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK){
object missing = Missing.Value;
Word.Application WordApp = new Word.ApplicationClass(); //WordApp isminde word nesnesi tanmlyoruz. ,
bject filename = openFileDialog1.FileName; //OpenFileDialog penceresinden etiimiz dknann yolunu alyoruz.
object readOnly = false;
object isVisible = true;
//Gerekli ayarlar yapldktan sonra word dosyasn ayoruz
WordApp.Documents.Open(ref filename, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
// BulveDegistir metoduna aranacak kelimelerle deitirilecek kelimeleri yolluyoruz.
BulveDegistir(WordApp,
"<Adi>", "Bilal");
BulveDegistir(WordApp, "<Soyadi>", "KORKMAZ");
BulveDegistir(WordApp, "<Telefon>", "01234567890");
BulveDegistir(WordApp, "<eposta>", "bk@bilalkorkmaz.com");
WordApp.Visible = true; // Son olarakta Office uygulamasını görünür hale getiriyoruz.
}
}
Son olarak projemizi derleyip çalıştırıyoruz ve açılan ekranda butona tıklayarak olusturduğumuz Word dökümanını şeciyoruz ve karşımıza gelen word ekranında sayadaki verilerin gönderdiğimiz verilerle değiştiğini görüyoruz.

Bu uygulamayı istediğiniz gibi geliştirip projelerinizde kullanarak dinamik word dökümanları oluşturabilirsiniz.
Umarım yararlı olabilmişimdir. Bir sonraki makalemizde grüşmek üzere...