Site Renkleri

Visual Basic Dersleri

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.

Web Tasarımı | Site Tasarımı | Bilgisayar Dersleri | Hosting | Domain