Hep SQL Server,Oracle ve Access'den bahsettik þimdiye
kadar. Bu yazimizda VB.Net ile excel sayfalarina ulasmayi, sütunlarý
görüntülemeyi ve hatta gerektiðinde düzeltmeler yapmayý
öðreneceðiz.. .Net herþeyi bir obje olarak görür
ve deklare etmenizi ister,bu sebeple bizde projemize Excel kütüphanesini
eklemek zorundayýz. Bunun için; VS.Net içindeki menülerden
Project menüsü içindeki “Add Referance” seçenegini
seçip uygun bir kütüphaneyi grogramimiza eklemeliyiz..(Office
XP için Microsoft Excel 10.0 Object Library) Bunun dýþýnda
bir de solution explorer penceresinde References sekmesine sað týklayarak
ayný iþlemi yapma þansýmýz var.
Obje mizi yaratmak için gerekli kütüphaneyi
projemize eklediðimize göre þimdi iþe excel objesi yaratarak
baþlayabiliriz..
'Excel objesini yaratýyoruz
Dim excelobject As New Excel.Application
'Path ini belirttiðimiz bir excel dosyasýný
açýyoruz.
excelobject.Workbooks.Open("c:\deneme.xls")
'Path ini verip baðlandýðýmýz
excel dosyasýnda worksheet seçiyoruz.
Dim worksheet As New Excel.Worksheet
worksheet = excelobject.ActiveWorkbook.ActiveSheet
Sadece bu 4 satýrlýk kodu yazarak Excel'e baðlanmýþ
olduk.
excelobject.Visible = True yazarak baglandigimiz Excel dosyasini
ekranda gösterebiliriz. Baðlantýmýzý saðladýðýmýza
göre artýk bu dosya üzerinde her türlü hakka sahibiz
demektir. O halde þimdi VB.Net ile bir excel dosyasý üzerinde
yapabileceðimiz deðiþikliklere bir göz atalým. Bunun
için aþaðýdaki kodlarý yazýyoruz:
'Sol üst köþedeki hücreyi iþaret
ediyoruz.
wsheet.Cells(1, 1) = "TOP LEFT CELL"
'Bu komut ile de A5 hücresinden D10 hücresine
' kadar bütün hücreleri "denemetablo" kelimesiyle dolduruyoruz.
worksheet.Range("A5:D10") = "denemetablo"
excelobject.Visible = True
Artýk genel bir fikir sahibi olduðumuza göre
ilk uygulamamýzý yapmaya baþlayabiliriz.
Basit bir listeleme örneði yapalým.Elimizde
2 tane listbox ýmýz olsun. Bunlardan birincisi isimleri diðeri
ise soyisimler tutsun. Bu isim ve soyisimlerden seçtiðimizde 3. bir
listboxda da bunu listeleyelim.
Öncelikle programýmýzýn OnLoad Olayýna
þunlarý ekleyelim:
Dim excelobject
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
excelobject.Workbooks.Open("c:\tanimlar.xls")
Dim worksheet
As New Excel.Worksheet
worksheet
= excelobject.ActiveWorkbook.ActiveSheet
'adlari ve parçalari
tuttugumuz listboxlari çoklu seçim moduna
'ayarliyoruz.böylece
birden fazla seçenegi seçebiliriz.
Liste1.SelectionMode
= SelectionMode.MultiSimple
Liste2.SelectionMode
= SelectionMode.MultiSimple
excelobject.Visible
= False
For i = 1 To 100
If worksheet.cells(i,
1).text <> "" Then
Liste1.Items.Add(worksheet.cells(i,
1).text & worksheet.cells(i,
2).text)
End If
If worksheet.cells(i,
3).text <> "" Then
Liste2.Items.Add(worksheet.cells(i,
3).text)
End If
Next
Dim adsheet(Liste1.Items.Count)
As Object
i = 0
For i = 0 To Liste1.Items.Count
- 1
adsheet(i) = excelobject.Workbooks.Open("c:\"
& Liste1.Items.Item(i)
& ".xls")
Next
excelobject.Workbooks.Close()
End Sub
Arama butonunun OnClick
Olayýna aþaðýdaki kodlarý ekleyelim ve Liste1
ve Liste2 nin
visible özelliklerini False yaparak Liste3 ün visible özelliðini
true yapalým.
Private Sub arama_Click(ByVal
sender As System.Object, ByVal e As _ System.EventArgs) Handles arama.Click
Dim itmad As Object
Dim itmparca As Object
Dim i As Integer = 0
Dim j As Integer
Liste3.Visible = True
Liste1.Visible
= False
ListBox2.Visible = False
Button2.Visible = False
Button3.Visible = True
Liste3.Items.Insert(0, "Isim"
& Space(30 - Len("Isim")))
For i = 0 To ListBox2.SelectedItems.Count
- 1
Liste3.Items.Item(0) = Liste3.Items.Item(0)
+ _
Liste2.SelectedItems.Item(i)
+ Space(30 - Len(Liste2.Items.Item(i)))
Next
i = 1
j = 1
For Each itmad
In Liste1.SelectedItems
Dim worksheetad
As Object
excelobject.Workbooks.Open("c:\"
+ itmad + ".xls")
worksheetad
= excelobject.ActiveWorkbook.ActiveSheet
Liste3.Items.Insert(i, itmad
& Space(30 - Len(itmad)))
For Each itmparca In Liste2.SelectedItems
For j = 1 To Liste2.Items.Count
If worksheetad.cells(1,
j).text = itmparca Then
Liste3.Items.Item(i) = Liste3.Items.Item(i)
+ _
worksheetad.cells(2,
j).text + _
Space(30 - Len(worksheetad.cells(2,
j).text))
End If
Next
Next
i = i + 1
Next
End Sub
Birde "yeni"
butonumuz olsun herþeyi ilk haline getirmek için :)
Ona da þu kodlarý eklediðimizde basit,ilk olmasý sebebiyle
önemli ve daha da geliþtirilebilecek bir excel uygulamamýz
oldu demektir.
Private Sub yeni_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles yeni.Click
Liste3.Items.Clear()
Liste3.Visible = False
Liste1.Visible = True
Liste2.Visible = True
arama.Visible = True
yeni.Visible = False
End Sub
Bir sonraki yazýmýzda
görüþmek üzere....