c# – Bookmarks Word işlemleri

5 Ağu

Herkese merhaba,
Daha önce bu yazımda sizlere sıfırdan nasıl word dosyası oluştururuz anlatmıştım.
Bugün ise var olan bir word dosyasını açıp, yer işaretlerine veri göndererek şablon kullanımını anlatacağım.

Öncelikle bilmeyen arkadaşlar için şablonu ve bookmarks eklemeyi gösteriyim. Şöyle bir şablonumuz olsun.

templateWord

Şablon içinde ki her alan için bookmarks ekleyim.

Şablonumuzun içini koddan dolduracağız. O yüzden hangi alana hangi veri geleceğini belirtmek için “Bookmarks” lara ihtiyaç duyuyoruz.

Şablon içinde ki Adı : Alanından sonra yazmak istediğimiz yere tıklayıp Ekle > Bağlantılar > Yer işareti. Yolunu izleyerek bookmarks ekliyoruz.

addBookMarks

Aynı şekilde soyadi, email ve açıklama alanlarınıda bookmarks(yer işareti) ekleyin.

NOT : Bookmarksı eklerken imleciniz neredeyse orayı işaret ediyorsunuz anlamına gelir.

Şimdi kodlarımıza geçelim. Referanslardan Microsoft.Office.Interop.Word‘ü eklemeyi unutmayalım. Detaylar için c# – Word dosyası oluşturmak adlı yazıma göz atabilirsiniz.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Microsoft.Office.Interop.Word;

namespace OpenWordAndBookMarksProcess
{
    class OpenWordAndBookmarksProcess
    {
        public void openWord(string _path)
        {
            if (!File.Exists(_path))
            {
                System.Windows.Forms.MessageBox.Show("Dosya bulunamadı.");
            }
            else
            {
                //Word uygulaması oluşturuyoruz.
                Application wordApp = new Application();
                
                object missing = System.Reflection.Missing.Value;
                object readOnly = false;
                object fileName = _path;

                //+Word dosyamızı açıyoruz.
                Document doc = wordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref readOnly,
                ref missing, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing);
                
                //Aktif sayfayı açıyoruz.
                doc.Activate();

                //word dosyası ekrana çıkartılır
                wordApp.Visible = true;
                //-

                //+Bookmarks işlemleri
                //Word dosyamızda ki bookmark adını yazıyoruz.
                object bookMarksName = "adi";
                //ilgili bookmarkı buluyor ve yerine yazmak istediğimiz veriyi yazıyoruz.
                doc.Bookmarks.get_Item(ref bookMarksName).Range.Text = "Semih";

                object bookMarksSoyadi = "soyadi";
                doc.Bookmarks.get_Item(ref bookMarksSoyadi).Range.Text = "Çelikol";

                object bookMarksEmail = "email";
                doc.Bookmarks.get_Item(ref bookMarksEmail).Range.Text = "semihcelikol@outlook.com";

                object bookMarksAciklama = "aciklama";
                doc.Bookmarks.get_Item(ref bookMarksAciklama).Range.Text = "Bu bir test uygulamasıdır. \n semihcelikol.com";
                //-

                ////Kaydedilir ve otomatik olarak çıkılır.
                ////Dosya kaydedilir.
                //doc.SaveAs2(ref fileName);
                ////Dosya kapatılır.
                //doc.Close(ref missing, ref missing, ref missing);
                //doc = null;
                ////Word uygulaması kapatılır
                //wordApp.Quit(ref missing, ref missing, ref missing);
                //wordApp = null;
            }
        }
    }
}

Başka bir yazımda görüşmek üzere, teşekkürler.

Şunlarda ilginiz çekebilir.
c# – Notepad veri yazmak
c# – Notepad veri okumak

Bir Cevap Yazın