C# ile MS Access 2007 Tablosunu Excel Dosyasına Yazdırmak

Batuhan Düzgün tarafından yayınlanmıştır 26. September 2010 09:50

Merhaba arkadaşlar bu yazımda  Access veritabanındaki tabloyu Excel sayfasına yazdırmayı göstereceğim.Bunun için Projemizin bulunduğu dizindeki Bin klasörü içinde bir adet Excel dosyası açıyoruz.Ardından Visual Studio'da form uygulaması açıp aşağıdaki gibi bir görsel arayüz hazırlıyoruz.
 
Form üzerinde bir adet DataGirdView ve bir adet Button  bileşeni bulunmaktadır.
 
Form görüntüsü...
 
 
 
 Şimdi de veritabanı işlemleri için aşağıdaki kodu ekliyelim.
 
usingSystem.Data.OleDb;
 
Bunun ardından form yüklenirken DataGirdView'ı dolduracak olan kodları yazalım.
 

private void Form1_Load(objectsender, EventArgs e)

{

            OleDbConnectionBaglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=" + Application.StartupPath+ "\\SonKayit.accdb; Persist SecurityInfo=False;");

            OleDbCommandKomut = new OleDbCommand();

            Komut.Connection = Baglanti;

            Komut.CommandText = "SELECT * FROM OgrenciBilgileri";

            OleDbDataAdapterAdap = new OleDbDataAdapter(Komut);

            Adap.Fill(Dataset);

            dataGridView1.DataSource =Dataset.Tables[0];

}
 
Yukarıdaki kod bağlantısız veritabanı işlemini yapar,bunu sağlayan sınıf OleDbDataAdapter sınıfıdır.Şimdi vakit kaybetmeden tablodaki bilgileri Excel Sayfasına kaydedecek olan kodları yazalım.Bunun bir metod tanımlıyoruz.
 

public void GetDataFromDB()

        {

            OleDbConnectionBaglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ Application.StartupPath + "\\SonKayit.accdb; Persist SecurityInfo=False;");

            OleDbConnectionBaglantiExcel = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=" + Application.StartupPath.ToString()+ "\\ExcelDosyasi.xlsx; ExtendedProperties=Excel 12.0");

           

            try

            {

                Baglanti.Open();

                BaglantiExcel.Open();

                stringSQLCumlen="SELECT * FROMOgrenciBilgileri";

                OleDbCommandKomut = new OleDbCommand(SQLCumlen,Baglanti);

                OleDbDataReaderOkuyucu = Komut.ExecuteReader();

                OleDbCommandExcelKomut = new OleDbCommand();

                ExcelKomut.Connection =BaglantiExcel;

               

              

                while(Okuyucu.Read())

                {

                    ExcelKomut.CommandText = "INSERTINTO[Sayfa1$]

(ID,Ogrenci_Adi,Ogrenci_Soyadi,Ogrenci_OkulNo,Ogrenci_Bolumu)

VALUES('" + Okuyucu.GetValue(0).ToString() + "','" + Okuyucu.GetValue(1).ToString() +"',

'" +Okuyucu.GetValue(2).ToString() + "','"+ Okuyucu.GetValue(3).ToString() + "','"+Okuyucu.GetValue(4).ToString()+"')";

                   ExcelKomut.ExecuteNonQuery();

                }

                Okuyucu.Close();

                Baglanti.Close();

              

                BaglantiExcel.Close();

                MessageBox.Show("Veriler Excele Yazıldı!");

            }

            catch(Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        } 
 
Yukarıdaki kodda genel olarak,veritabanından "DataReader" nesnesi ile okuma yapılıp,başka bir bağlantı ve komut nesnesiyle "Excel"e yazma işlemi yapılıyor."DataReader" nesnesinin okuduğu satırdaki hücreleri GetValue metoduyla alıp,bunları "INSERT INTO" ifadesini içeren ve "Excel"e yazma işlemini sağlayacak olan SQL cümlesinde parametre olarak kullanıyoruz. 
 
Ardından aşağıdaki gibi Button "Click" olayının altına aşağıdaki kodu yazıyoruz.
 

private void button1_Click(objectsender, EventArgs e)

{

            GetDataFromDB();

} 
 
 Şimdi de sonuçlara bakalım.Projeyi derledikten sonra aşağıdaki butona bastıktan sonra aşağıdaki görüntüyü elde etmeniz lazım.
 
 
 
 
Birde Excel sayfamıza bakalım,verileri yazmışmı diye.
 
 
 
Evet arkadaşlar bir yazımında daha sonuna geldim.Bir sonraki makalemde görüşmek dileğiyle ...
 
Batuhan Düzgün
 
Sakarya Üniversitesi
 
Bilgisayar Mühendisliği
 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

C#

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  May 2019  >>
MoTuWeThFrSaSu
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

Yazıları geniş takvimde göster