Makale Özeti

Bu makale de VSTO ile WORD ‘e nasıl hükmedeceğinizi göreceğiz. Bu makale sonunda kendi kendinize ait "WORD" belgesi oluşturabilir, üzerinde değişiklikler yapabilir, değişik formatlar uygulayabilir ve tüm bunları ".doc" veya ".rtf" uzantılı olarak kaydedebilir hale geleceksiniz. Peki, yapacaklarınız bu kadarla mı sınırlı? Kesinlikle bu kadar değil. Yapacaklarınız sadece hayal gücünüzle sınırlı. Size bu makalede WORD nasıl kullanılır anlatmayacağım. Size .NET 2003 ile WORD’E nasıl hükmedeceğiniz hakkında bilgi vereceğim.

Makale

Bu makale de VSTO ile WORD ‘e nasıl hükmedeceğinizi göreceğiz. Bu makale sonunda kendi kendinize ait "WORD" belgesi oluşturabilir, üzerinde değişiklikler yapabilir, değişik formatlar uygulayabilir ve tüm bunları ".doc" veya ".rtf" uzantılı olarak kaydedebilir hale geleceksiniz. Peki, yapacaklarınız bu kadarla mı sınırlı? Kesinlikle bu kadar değil. Yapacaklarınız sadece hayal gücünüzle sınırlı. Size bu makalede WORD nasıl kullanılır anlatmayacağım. Size .NET 2003 ile WORD’E nasıl hükmedeceğiniz hakkında bilgi vereceğim.

 

Projemize Office Referans Verilmesi:

Projemize başlamadan referans ekleme bölümünden COM sekmesine gelinir. Burada, Office’in hangi uygulaması ile ilgili proje yapmak istiyorsak, onun referansını bulunur. (Word,Excel  vs..) Bu makalede Word kullanacağımız için Microsoft Word 11.0 Object Library ‘yi projemize referans veriyoruz.

Başlamadan önce kullanacağımız temel yapı taşlarını biraz inceleyelim:

Application:

Application nesnesi Word uygulamasını temsil eden sınıftır. Uygulamanın ekranda görünüp görünmeyeceğini, kullanıcı etkileşimli olup olmayacağını, kilitli olarak açılıp açılmayacağı gibi özellikler, bu sınıf üzerinden ayarlanır.

Range:

Doküman üzerinde başlangıç ve bitiş noktalarını belirterek seçme işlemi gerçekleştirmenizi sağlar. Şayet başlangıç ve bitiş noktası için verdiğiniz referanslar ayni noktayı işaret ediyorsa cursor işaretlenen alanda kalacaktır.

 

 

 

 

Hadi projemize başlayalım ve Word’e hükmedelim.

Şimdi .NET 2003 içinde “WORDeHUKMEDIN” adında bir Windows uygulaması açın.

Verilen örnek kodların hata vermeden çalışması için Microsoft.Office.Interop kütüphanesini using(c#) ya da imports(vb) anahtar kelimesiyle projemizin başında belirtmemiz gerekir.

Tüm diğer external objelerde yaptığımız gibi Word obje modelini de projemizde kullanabilmek için deklare etmemiz, yani bir değişkene atamamız gerekiyor. Bunun içinde:

Dim WordApp As New Word.Application

Doküman üzerindeki değişiklikler içinde:

Dim dokuman as Word.Document

*       Şimdi ilk örnek kodumuzu yazalım;

    Private fileName As Object ' Dosya nesnemiz

    Private [readOnly] As Object = False 'Dosya salt okunur nesnesi

    Private isVisible As Object = True ‘ Dosya görüntülensin mi?

    Private missing As Object = System.Reflection.Missing.Value

    Dim wordapp As New Word.Application

    Dim dokuman As Word.Document

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

      

        fileName = "c:\TEST.doc" ' Word belgemizin yeri

        dokuman = wordapp.Documents.Open(fileName, missing, [readOnly], missing, missing, missing, missing, missing, missing, missing, missing, isVisible) ' Varolan Word belgemizi açmamızı sağlar

        dokuman.Activate() ' Word belgemizi aktif yapar

        wordapp.Visible = True ' Word belgemizin ekranda görüntülenmesini sağlar

dokuman = wordapp.Documents.Add 'yeni doküman oluşturuyoruz.

dokuman.SaveAs("kaydet-test.doc") 'Uygulamamıza bir isim vererek kaydediyoruz.

‘NOT: Eğer doküman daha önce kaydedildiyse SaveAs yerine Save metodunu kullanmanız yeterli olacaktır

   End Sub

NOT: Bu yukarıdaki kod sayesinde belirtilen hedefteki Word belgesini editlenebilecek şekilde açtık. Eğer [readOnly]=TRUE olsaydı readonly formatta açılacak ve editlenemeyecekti.

 

 

 

 

Close Object

Aktif dokümanı kapatmamıza yarayan metoddur.

dokuman.Close([ByRef saveChanges As Object], [ByRef originalFormat As Object], _

[ByRef routeDocument As Object])

Burada kullandigimiz 3 değişik argüman var;

SaveChanges: WDSaveOptions elemanıdır ve üç degeri vardir: wdDoNotSaveChanges, wdPromptToSaveChanges, veya wdSaveChanges

Originalformat: WDOriginalFormat elemanidir ve bunun da seçilebilir üç degeri vardir: wdOriginalDocumentFormat, wdPromptUser, veya wdWordDocument

Routing Slip:sayet yarattiginiz dokümani mail eki olarak kullanmayacaksaniz bu argümani dikkate almayabiliriz.

Quit Object

Close objesinden tek farki close sadece dokümani saklar,quit ise word belgesini kapatir.

Ok Tuslari

WordApp.Selection.MoveLeft([Unit], [Count],[Extent]) 'Sol Ok tusu

WordApp.Selection.MoveRight([Unit], [Count],[Extent]) 'Sağ Ok tusu

WordApp.Selection.MoveUp([Unit], [Count],[Extent]) 'Yukarı tusu

WordApp.Selection.MoveDown([Unit], [Count],[Extent]) 'Aşağı tusu

Extent argümanı yukarıdakinin aynisidir. Unit argümanı için ise WdUnit farklı seçenekler sunmaktadır. MoveLeft ve MoveRight için;

WdCharacter: Count sayısı kadar karakter değiştirir. Default değeridir.

WdWord: Count sayisi kadar kelime değiştirir.

WdSentence: Count sayisi kadar cümle değiştirir.

WdCell: Count sayisi kadar hücre değiştirir. Tablolarda kullanılır.

MoveUp ve MoveDown için ise;

WdLine: Count sayisi kadar satir değiştirir.

WdParagraph: Count sayisi kadar paragraf  degistirir.

WdWindow: Count sayisi kadar pencere degistirir.

WdScreen: Count sayisi kadar ekran degistirir.

ALINTI: MSDN

Şimdi Range Objesini kullanarak seçme işlemlerini bir örnek ile inceleyelim.

Dim dokuman As Word.Document

dokuman = WordApp.Documents.Open("c:\test.doc")

Dim range As Word.Range

range = dokuman.Range(0, 15) dokuman.range(Baslangic, Bitis)

range.Select() 'Bu komut ile 0-15 karakter arasında seçme yapılır

Bütün dokumanı seçmek için,

range = dokuman.Range(0, dokuman.Characters.Count)

Yazıyı formatlama

Formatlama

Range komutuyla seçilen parçaların formatları değiştirilebilir.

'seçilmiş alanı 18 size Verdana yazitipine sahip ortalanmış sekle dönüştürüyoruz.

With range

        .Font.Size = 18

        .Font.Name = " Verdana "

        .ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphCenter

End With

 

Bu Makalemizde Word belgesini nasıl açacağımızı, belli başlı nesnelerin ne işe yaradıklarını ve Word deki yazı formatlarını nasıl değiştirebileceğimizi gördük. Bundan sonra ki makalemizde Word de nasıl arama yapacağımızı, sonra gerekli yerlere nasıl replace yapacağımızı inceleyeceğiz.

 

Volkan KORKMAZ