Ana sayfa » Programlama » C# Word Template İşlemleri

C# Word Template İşlemleri

Yazar: Mehmet YETKİN
csharp word

C# ile Word işlemleri, Word belgem üzerinde kodla değişiklik yapmak istiyorum, belirli bir adreste bulunan Word şablon dosyam üzerinde belirlediğim alanlara kodla veri aktarmak istiyorum Nasıl Yapılır? diye soruyorsanız doğru yerdesiniz yazıyı okumaya devam edin.

Bu yazımızda C: sürücüsünde VisualProject (C:\\VisualProjects\) klasöründe bulunan Template.docx şablon dosyamızda aşağıda görüldüğü gibi “< >” tagları arasında belirlediğimiz alanlara veri aktarımı yapıp elde ettiğimiz yeni dosyayı farklı bir klasör içinde (VisualProjects klasörü içerisinde bulunan Reports klasörünün içinde) sonuc.docx isminde kaydedip dosyamızı açıp ekranda göstereceğiz.

.dll Ekleme

Yukarıda bahsettiğimiz işlemleri yapabilmek için öncelikle projemize Microsoft.Office.Interop.Word.dll dosyasını eklememiz gerekiyor. Bunun için projemizi oluşturup açtıktan sonra sağ tarafta Solution Explorer → References → Add Reference → COM → deyip Word library kütüphanesini ekliyoruz. Visual Studio’su Türkçe olanlar aşağıda görüldüğü gibi Başvurular -> Başvuru Ekle deyip devam edebilirler.

Referans Ekleme

Word library kütüphanesi bilgisayarınızda yoksa internetten Microsoft.Office.Interop.Word.dll dosyasını indirip Solution Explorer → References → Add Reference → COM → deyip gözat diyerek projenize yükleyebilirsiniz.

Template Düzenleme

Bu işlemlerden sonra bizim hazırladığımız şablon Template.docx dosyamızın içeriği aşağıda görüldüğü gibidir.

Template.docx

“< >” işaretlerine dikkat edin bizim kodla göndereceğimiz veriler küçük-büyük “<>” taglarının bulunduğu yerlere gelecektir.

Tasarım ve Kodlama

Projenizin tasarım formunu aşağıdaki gibi oluşturduktan sonra kod kısmına geçelim.

Window Formumuz

using kısmında yukarıda görüldüğü gibi Word = Microsoft.Office.Interop.Word; satırını import ediyoruz.

clasın içine aşağıdaki kod satırlarını ekleyelim.

Butonun click olayına aşağıdaki kodları yazıyoruz.

Yukarıdaki kodları yazdıktan sonra projeyi çalıştırıp aşağıdaki gibi verileri girip Worde Veri Aktar butonuna basınız.

Projeyi çalıştır ve verileri gir

C:\\VisualProjects\Reports\sonuc.docx dosyası oluşturulup aşağıdaki ekranda görüldüğü gibi açılacaktır.

Sonuc dosyası
10 yorum
0

İlgili Yazılar

10 yorum

oguzhan mehmet ekici 25 Mayıs 2021 - 6:17 am

Hocam office 365 kullanıyorum app değişkenini tanımıyor

Reply
Admin 1 Haziran 2021 - 1:56 pm

classın içine aşağıdaki kodu ekle
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
Object missing = Type.Missing;

Reply
mehmet 6 Mart 2022 - 10:15 am

Selection, sadece seçili olan metinleri mi arıyor? Yeni oluşturduğum doc ta replace yapmadı maalesef.. TÜm belgeyi nasıl aratabiliriz?

Reply
Mehmet YETKİN 7 Mart 2022 - 12:41 pm

Merhaba, bu işlemde metin seçme olayı yok. Uygulama içerisinde göndereceğiniz veriler word dosyası içerisinde bulunan < > (küçük-büyük) taglarının bulunduğu yerlere gelir. < > (küçük-büyük) tagları arasındaki kelimeyi doysa içerisinde arayıp bulur ve gönderdiğiniz metni oraya yazar. Burada dosyanızın bulunduğu yolu yukarıdaki örnek için “C:\\VisualProjects\\Template.docx” şeklinde doğru girdiğinizden ve yeni dosyanızın kaydedileceği yolu doğru girdiğinizden (yukarıdaki örnek için object saveAsfile = (object)”C:\\VisualProjects\\Reports\\sonuc.docx”) emin olunuz.
(Yukarıdaki örnek için C sürücüsünde VisualProjects isminde bir klasör oluşturunuz. Oluşturduğunuz şablonu bu klasörün içine atınız. VisualProjects klasörünün içinde Reports isminde bir klasör daha oluşturunuz.)

Reply
Hüseyin 6 Ocak 2023 - 6:17 pm

Merhaba,

Öncelikle paylaştığınız değerli bilgiler için çok teşekkür ederim.
Word içindeki bir tabloya ilgili veriyi atmak istediğimde ne yapmalıyım.
Üzerinde çalıştığım word dosyasında tarif ettiğiniz gibi yaptığım zaman istediğim yerlere istediğim veriyi gönderebildim.
Fakat word içerisinde bulunan bir tabloya veri göndermek istediğimde gönderemedim.
Nasıl yapabilirim yardımcı olabilir misiniz

Reply
Mehmet YETKİN 10 Ocak 2023 - 1:52 pm

Verilen örnekte zaten word dosyasındaki bir tabloya veri aktarımı yapılmış. Önemli olan aktarılacak yerdeki (bu bir tablo hücresi de olabilir) <> tagları arasına verilen isim ile kod kısmındaki ismin aynı olması.

Reply
hakan koç 26 Mart 2023 - 10:16 am

merhaba ben dosyanın çalışacağı debug yolun oraya klasör oluşturdum. verdiğiniz kodları yazdım .program çalışıyor ama dosya oluşturmuyor ve ekleme yapmıyor. mail adresiniz nedir yardımcı olabilir misiniz? hakan_431@hotmail.com

Reply
Mehmet YETKİN 17 Nisan 2023 - 3:54 pm

Merhaba, aynı sorunu bende yaşadım. Bende dosya yoluna direk dosya adını yazınca belgelerime kaydetti. Şuan için bir çözüm bulamadım.(Dosya yolunu uzun şekliyle yazmak gerekiyor)

Reply
hakan koç 26 Mart 2023 - 10:17 am

try {

Microsoft.Office.Interop.Word.Document doc = null;
Object filename = AppDomain.CurrentDomain.BaseDirectory + ” @deneme\\deneme.docx”;
doc = app.Documents.Open(filename, missing, missing);
app.Selection.Find.ClearFormatting();
app.Selection.Find.Replacement.ClearFormatting();
app.Selection.Find.Execute(“<date>”,missing, label1.Text, 2);
object saveAsfile = (object)AppDomain.CurrentDomain.BaseDirectory + ” @deneme\\sn\\deneme.docx”;
doc.SaveAs2(saveAsfile, missing);
object dosyaadi = saveAsfile;
object sadeceokunur = false;
object gorunur = true;
object missing2 = System.Reflection.Missing.Value;
app.Visible = true;
doc = app.Documents.Open(ref dosyaadi, ref missing2, ref sadeceokunur, ref missing2, ref missing2, ref missing2, ref missing2, ref missing2, ref missing2, ref missing2, ref missing2, ref gorunur, ref missing2, ref missing2, ref missing2, ref missing2);
doc.Activate();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
}
catch
{

}

Reply
hakan koç 26 Mart 2023 - 10:34 am

bu arada dll yükleme hatası veriyor. netten bulduğum dll ile değiştirdim aam yine hata veriyor.. warning olarak. ama program çalışıyor. worde ekleme yapmıyor.

Reply

Yorum yap