Makale Özeti

Bu yazımızda VB.Net ile excel sayfalarına ulaşmayı, istediğimiz sütunları görüntülemeyi, gerektiğinde değişikik yapmayı göreceğiz.

Makale

!!!VB de Excel !!!

“VB.NET”te EXCEL UYGULAMASI

Bu yazımızda VB.Net ile excel sayfalarına ulaşmayı, istediğimiz sütunları görüntülemeyi, gerektiğinde değişikik yapmayı göreceğiz. Excel objesini kullanmak için Excel kütüphanesini programımıza eklemeliyiz. Bunun için; VS.Net içindeki menülerden Project menüsü içindeki “Add Referance” seçeneğini seçip uygun bir kütüphaneyi ğrogramımıza ekleyelim.(Office XP için Microsoft Excel 10.0 Object Library)

Şimdi programımıza başlayabiliriz. Önce bir excel objesi yaratmalıyız.

Bir Excel objesi yaratıyoruz

Dim objexl As New Excel.Application

yolu belirtilen bir excel dosyası acıyoruz

objexl.Workbooks.Open("c:\deneme.xls")

acılan excel dosyası içindeki kullanacağımız worksheeti seçiyoruz.

Dim wsheet As New Excel.Worksheet

wsheet = objexl.ActiveWorkbook.ActiveSheet

Böylelikle bir excel dosyasına bağlantı kurmuş olduk. objexl.Visible = True yazarak bağlandığımız Excel dosyasını ekranda gösterebiliriz. Bundan sonra istediğimiz hücrede istediğimiz değişikliği yapabiliriz. Bunun içinde aşağıdaki kodları yazalım bakalım ne gibi değişiklikler oluyor.

bu komut ile sol üst köşedeki hücreye yeni birşeyler girebiliriz.

wsheet.Cells(1, 1) = "TOP LEFT CELL"

bu komut ile de A2 hücresinden K10 hücresine

kadar bütün hücreleri "a" karakteriyle dolduruyoruz.

wsheet.Range("A2:K10") = "a"

objexl.Visible = True

Şimdi basit bir filtreleme programı yapalım. Bilgisayar firmasının birçok müşteri vardır. Her müşterinin kayıtları bir excel dosyasında tutulmaktadır. Bunun için 2 listbox yapalım. Bunların ilki isimleri tutsun 2.si ise parçaları tutsun. Bu parçalardan ve isimlerden istediklerimizi seçtiğimizde ekrandaki 3. bir listboxta bunları listeleyebilelim. Tabi aramak (filtrelemek) için bir buton yeni tarama için bir buton ve bir End butonu da ekleyelim.

Önce program başlarken Load kısmına aşağıdaki kodları yazalım.

Dim objexl As New Excel.Application

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

Dim i As Integer

objexl.Workbooks.Open("c:\tanimlar.xls")

Dim wsheet As New Excel.Worksheet

wsheet = objexl.ActiveWorkbook.ActiveSheet

adları ve parçaları tuttuğumuz listboxları çoklu seçim moduna

ayarlıyoruz.böylece birden fazla seçeneği seçebiliriz.

ListBox1.SelectionMode = SelectionMode.MultiSimple

ListBox2.SelectionMode = SelectionMode.MultiSimple

objexl.Visible = False

For i = 1 To 100

If wsheet.cells(i, 1).text <> "" Then

ListBox1.Items.Add(wsheet.cells(i, 1).text & wsheet.cells(i, 2).text)

End If

If wsheet.cells(i, 3).text <> "" Then

ListBox2.Items.Add(wsheet.cells(i, 3).text)

End If

Next

Dim adsheet(ListBox1.Items.Count) As Object

i = 0

For i = 0 To ListBox1.Items.Count - 1

adsheet(i) = objexl.Workbooks.Open("c:\" & ListBox1.Items.Item(i) & ".xls")

Next

objexl.Workbooks.Close()

End Sub

 

Ara butonuna bastığımızda ise başlangıçta Visible özelliklerini False yaptığımız Listbox3 ve Yeniden listeleme Butonlarını göstereceğiz. Yukarıda görünen nesnelerin ise Visible özelliklerini False yapacağız. Ara butonunun Click Metoduna aşağıdaki kodları yazalım.

Private Sub btnara_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles btnara.Click

   Dim itmad As Object

   Dim itmparca As Object

   Dim i As Integer = 0

   Dim j As Integer

   ListBox3.Visible = True

   ListBox1.Visible = False

   ListBox2.Visible = False

   Button2.Visible = False

   Button3.Visible = True

   ListBox3.Items.Insert(0, "Musteri adı" & Space(30 - Len("Musteri adı")))

   For i = 0 To ListBox2.SelectedItems.Count - 1

       ListBox3.Items.Item(0) = ListBox3.Items.Item(0) + _

       ListBox2.SelectedItems.Item(i) + Space(30 - Len(ListBox2.Items.Item(i)))

   Next

   i = 1

   j = 1

   For Each itmad In ListBox1.SelectedItems

       Dim wsheetad As Object

       objexl.Workbooks.Open("c:\" + itmad + ".xls")

       wsheetad = objexl.ActiveWorkbook.ActiveSheet

       ListBox3.Items.Insert(i, itmad & Space(30 - Len(itmad)))

       For Each itmparca In ListBox2.SelectedItems

             For j = 1 To ListBox2.Items.Count

                    If wsheetad.cells(1, j).text = itmparca Then

                    ListBox3.Items.Item(i) = ListBox3.Items.Item(i) + _

wsheetad.cells(2, j).text + _

Space(30 - Len(wsheetad.cells(2, j).text))

                    End If

Next

Next

       i = i + 1

Next

End Sub

 

 

 “yenilisteleme” butonuna bastığımızda ise ile ekran tekrar gelecektir. Bu kodlar ise aşağıdadır

Private Sub btnylist_Click(ByVal sender As System.Object, ByVal e As _

System.EventArgs) Handles btnylist.Click

    ListBox3.Items.Clear()

    ListBox3.Visible = False

    ListBox1.Visible = True

    ListBox2.Visible = True

    btnara.Visible = True

    btnylist.Visible = False

End Sub

Bu yazımızda VB.Net ile Excelin  kullanılması konusunu kısaca anlattım ve temel bir örnek verdim. Tabi daha da geliştirilebilir.

 

Başka yazılarla görüşmek üzere...