Aşağıdaki kod örneği bize COM bağlantı noktası ile nasıl excel dosyası oluşturacağımızı göstermektedir. Kodları kullanmaya başlamadan önce bilgisayarınızda EXCEL programının yüklü olması gerektiğini bilmelisiniz.
Excel Kütüphanesi
Microsoft C# ile nesne modeline erişmek için Microsoft Excel 15.0 Object Kütüphanesini projeye bağlamalısınız. Bu işlem için aşağıdaki adımları gerçekleştiriniz.
Aşağıdaki resimde gösterildiği gibi referans kütüphanesini açınız.
COM sekmesinden Excel 15.0 Object Library seçip OK butonuna basınız.
Program tarafında Excel dosyasını nasıl oluşturacağımıza bakalım.
Ekrandaki butona tıkladığımızda excel dosyasını oluşturan basit bir örnekle başlayalım.
WPF ekranına Controllerden bir tane buton controlü ekleyip click olayına kodlarımızı yazıyoruz.
Windows Form kullananlar içinde aynı adımlar geçerli olacaktır.
Öncelikle Excel uygulama nesnesini başlatmak zorundayız.
1 2 3 |
Excel.Application xlOrn = new Microsoft.Office.Interop.Excel.Application(); |
Yeni bir excel belgesi oluşturmadan önce Excel programının yüklü olup olmadığını kontrol edelim.
1 2 3 4 5 6 7 |
if (xlOrn == null) { MessageBox.Show("Excel yüklü değil!!"); return; } |
Yeni bir excel kitabı ve excel sayfası açmak için gerekli kodlarımızı yazıyoruz.
1 2 3 4 5 |
Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; |
Açık olan excel sayfasının ilk satırına örnek bir yazı girmek için gerekli olan kodumuz.
1 2 3 4 5 |
xlWorkBook = xlOrn.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet.Cells[1, 1] = "Sayfa 1 Örnek Yazı"; |
Açık olan Excel belgemizi istediğimiz yere kaydedip, excel belgemizi kapatıyoruz.
1 2 3 4 5 |
xlWorkBook.SaveAs("d:\\yazilimbilisim.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlOrn.Quit(); |
Kodlarımızı toparlayacak olursa aşağıdaki şekilde belgemiz oluşturulmuş olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Excel.Application xlOrn = new Microsoft.Office.Interop.Excel.Application(); if (xlOrn == null) { MessageBox.Show("Excel yüklü değil!!"); return; } Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlWorkBook = xlOrn.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet.Cells[1, 1] = "Sayfa 1 Örnek Yazı"; xlWorkBook.SaveAs("d:\\yazilimbilisim.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlOrn.Quit(); MessageBox.Show("Excel dosyası d:\\yazilimbilisim.xls komununda oluşturuldu!"); |
NOT: using Excel = Microsoft.Office.Interop.Excel; eklemeyi unutmayın.
Uygulamanın sonuna COM bağlantısını ram üzerinden de kaldırması için gerekli kodu yazmakta fayda var. Bilgisayar raminde fazladan excel açıp boş yere ram tüketmemek gerek.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
try { System.Runtime.InteropServices.Marshal.ReleaseComObject(xlProje); xlProje = null; } catch (Exception ex) { xlProje = null; MessageBox.Show("Hata " + ex.ToString()); } finally { GC.Collect(); } |
excel sürümünü nasıl ayarlıyacaz
Merhabalar aşağıdaki kodları eklediğim halde fazladan excel açık kalıyor. Nedendir acaba? yardımcı olabilir misiniz?
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlProje);
xlProje = null;
}
catch (Exception ex)
{
xlProje = null;
MessageBox.Show(“Hata ” + ex.ToString());
}
finally
{
GC.Collect();
}
[…] Excel Kütüphanesini Projeye Dahil Etmek İçin bağlantısındaki makaleyi inceleyebilirsiniz. […]
[…] C# ile Excel Dosyası Oluşturma […]
[…] […]
[…] Daha önceli yazılardan Microsoft Excel 12.0 Object kütüphanesinin nasıl dahil edildiğini in… […]