11 Haziran 2012 Pazartesi

Excel ve Visual Basic Bağlantısı 2

Merhaba dostlar.
Bugün sizlerle excel-vb bağlantısında işe yarayacak bazı kodlar paylaşacağım.

İşte ilk kod örneğimiz.
Dim yol As String = Path.GetFullPath(Path.Combine(Application.StartupPath, "..\..")) & "\erp.xlsx"

Bu kod satırı proje klasörünün içindeki dosyanın yolunu bulan kod satırıdır. Bu dosyanın adresini "yol" değişkenine atar. Yol adresini bulmak istediğiniz yer ise bu kod satırında "erp.xlsx" olarak gösterilen yerdir. Siz istediğiniz gibi değiştirebilirsiniz. Peki bu kod neredeki dosyanın adresini alır? Mesela "kayıtlar" diye bir uygulamanız olsun. Bu uygulamanın eğer siz değiştirmediyseniz "Belgeler\Visual Studio 2008\Projects" adresinde bir klasörü olur. Projeler içinden "kayıtlar" klasörüne girerseniz karşınıza bir klasör ve bir de solution dosyası çıkar. Bu kod işte bu klasörün içindeki herhangi bir dosyanın yolunu bulur. Özellikle excel veritabanı olarak kullanılacaksa bu kod çok işe yarar çünkü veritabanı olan excel dosyasını bu klasöre koyarsanız her bilgisayarda rahat bir şekilde çalışır.

ekzel.ActiveCell.Offset(0, 1).Value="Merhaba"

Bu kod satırında ekzel excel uygulamasını atadığımız değişkenin adıdır, bir önceki konuda anlatmıştım. Bu kod aktif olana yani seçili durumda olan hücrenin bir sütun sağındaki hücreye "Merhaba" yazdırır. 

ekzel.ActiveCell.Offset(0,-1).Value="Merhaba"

Bu kod aktif olana yani seçili durumda olan hücrenin bir sütun solundaki hücreye "Merhaba" yazdırır. 

ekzel.ActiveCell.Offset(1,0).Value="Merhaba"

Bu kod aktif olana yani seçili durumda olan hücrenin bir satır altındaki hücreye "Merhaba" yazdırır. 

ekzel.ActiveCell.Offset(-1,0).Value="Merhaba"

Bu kod aktif olana yani seçili durumda olan hücrenin bir satır üstündeki hücreye "Merhaba" yazdırır. 

ekzel.Cells(3, 8).activate()
Do While Not (ekzel.ActiveCell.Value = Nothing)
      ekzel.ActiveCell.Offset(1, 0).Select()
Loop

Bu kod satırları kayıt girerken çok işe yarayan satırlardır. 3. satır 8. sütunlu hücre seçildikten sonra aşağı doğru hücreleri denetler ve boş hücre geldiğinde durur. Bu satırlar program tarafından çalıştırldığında 8. sütunda 3. satırdan itibaren boş olan ilk hücreyi seçili hale getirir.
Bu küçük örneği de ekliyorum. Bu program veritabanı excel e kayıt yapabiliyor, istediğiniz isme göre arama yapıp bilgileri kutulara yazabiliyor. Excel ile Visual Basic bağlantısını çok iyi anlatabilecek bir örnek.


Hepinize kolay gelsin.

9 Haziran 2012 Cumartesi

Excel ve Visual Basic Bağlantısı 1

Merhaba dostlar.
Bugün sizlerle visual basic den excel e nasıl bağlantı yapılacağını anlatmaya çalışacağım. Excel ile bağlantı yapmak için programı yazmaya başlamadan önce yapılması gereken bir kaç işlem var öncelikle bunlardan bahsedeceğim. Windows Application oluşturulduktan sonra yapılacak işlemler sırayla şöyledir :

Sağ tarafta bulunan My Project seçeneğine çift tıkladığımızda karşımıza bu ekran çıkar. Buradan da sol taraftaki seçenekler kısmından References seçeneğini seçmemiz gerekir ve asıl işlem için hazır durumda oluruz. Buraya ulaştıktan sonra resimde işaretli Add düğmesine basarız ve şu pencere karşımıza çıkar.
Bu pencereden işaretli olan seçeneği seçeriz. Ben office 2007 kullandığım için "12.0" olanı seçiyorum office 2003 kullananlar "5.0" olanı seçmelidir. Bu aşamayı geçtikten sonra bir işlem daha kalıyor.
Yine References penceresinin alt kısmında bulunan kısımdan Microsoft Office Interop seçeneğini işaretleyip işlemi tamamlıyoruz. Böylece artık kodları yazmaya başlayabiliriz.
Bağlantıyı göstermek için küçük bir uygulama üzerinden anlatacağım. Burada bilgisayardan bir excel dosyası seçiyoruz ve girdi kutusundaki veriyi istediğimiz hücreye satır sütun numaraları yardımıyla yazdırıyoruz. Bilgisayardan dosya seçtirmek için Toolbox kısmından form ekranına Open File Dialog ekliyoruz. Eklediğimiz zaman form ekranının alt kısmında görünecektir , form ekranı üstünde görünmez. Şimdi kod kısmına biraz bakalım.

Excel dosyasının tüm yordamlarda tanınması için genel bir tanımlama yapmamız gerekiyor. Kod kısmında Public Class Form1 yazan yerin altına  Dim ekzel As New Excel.Application yazarsak excel dosyası programdaki tüm yordamlarda tanınır. Burada kırmızı olan ekzel değişken ismidir EXCEL dosyasını bir değişkenle ifade etmemiz gerekir.


Şimdi dosya seçme kısmına geçelim. Dosya seçme tuşunun yordamına girip şu kodları yazarız.
OpenFileDialog1.ShowDialog() Bu satır o düğmeye basıldığında dosya seçtirici pencereyi açtırır.
ekzel.Workbooks.Open(OpenFileDialog1.FileName) Bu satır ise seçtiğiniz dosyanın adresini alarak excel dosyasını açtırır. Programı çalıştırdığınızda excel sayfası görünmez. Eğer açtığınız excel sayfasını görmek istiyorsanız excel açtıran satırın altına ekzel.Visible = True satırını eklemelisiniz.


Şimdi istediğimiz veriyi excel sayfasına yazdırma kısmına geçelim. Bunun için şu satırı kullanırız;
ekzel.Cells(1,2).value = "Merhaba" Bu satır sayfanın 1. satır 2. sütununa Merhaba yazdırır. Örnekteki kod satırı ise şöyle ;
ekzel.Cells(Val(TextBox2.Text), Val(TextBox3.Text)).value = Trim(TextBox1.Text)
Bu kod girdi kutusunun değerini satır ve sütunları verilmiş hücreye yazdırır.

Programdan çıkarken şu kodlar çıkış düğmesinin yordamına eklenmelidir aksi takdirde excel kapanmıyor arka planda çalışmaya devam ediyor (eğer excel dosyasını görünmez halde çalıştırıyorsanız).

ekzel.Quit()
ekzel = Nothing

Yaptığım küçük örneği aşağıdaki bağlantıdan indirebilirsiniz.

Hepinize kolay gelsin.

Örneği indirmek için tıklayın.