Bu yazıda C# ile mevcut bir excel kitabına yeni bir sayfa ekleme nasıl yapılacağını inceleyeceğiz.
C# ile exceli kullanabilmek için referanslara excelin kütüphanesini eklemeliyiz. Önceli excel yazılarından bu işlemin nasıl yapıldığını inceleyebilirsiniz.
Excel kütüphanemizi Projeye yükledik. Sıra geldi yazdığımız kodları açıklamaya;
D sürücüsündeki bel2.xls dosyasını çalışmak için seçtik.
1 2 3 4 5 |
string filePath = @"d:\bel2.xls"; Excel.Workbook xlKitap = xlProje.Workbooks.Open(filePath, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); Excel.Sheets xlSayfa = xlKitap.Worksheets; |
Çalışmak için açtığımız excel kitabına yeni bir sayfa eklendi. Name özelliği ile sayfa ismi belirttik. Oluşturulan excel sayfasını ilk hücresine örnek bir yazı yazdırdık.
1 2 3 4 5 |
var xlYeniSayfa = (Excel.Worksheet)xlSayfa.Add(xlSayfa[1], Type.Missing, Type.Missing, Type.Missing); xlYeniSayfa.Name = "yeniSayfa3"; xlYeniSayfa.Cells[1, 1] = "Yeni Sayfanın İlkaaa Hücresi"; |
Seçili(dosyayı tekrar açtığımızda aktif sayfa) olması için ilk sayfayı seçildi.
1 2 3 4 |
xlYeniSayfa = (Excel.Worksheet)xlKitap.Worksheets.get_Item(1); xlYeniSayfa.Select(); |
Üzerinde çalıştığımız excel kitabını kaydedip kapatıldı. Tabi son işlem olarak da işlem bittiği konusunda uyarı yazdırıldı.
1 2 3 4 5 6 |
xlKitap.Save(); xlKitap.Close(); MessageBox.Show("Yeni Sayfa Oluşturuldu ve Kayıt Eklendi"); |
Anlattığımız kodları toplarlayacak olursak. Kodlarımız aşağıdaki şekilde oluşacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
Excel.Application xlProje = new Excel.Application(); if (xlProje == null) { MessageBox.Show("Excel Bilgisayarınızda Yüklü Değil!!"); return; } //xlProje.DisplayAlerts = false; string filePath = @"d:\bel2.xls"; Excel.Workbook xlKitap = xlProje.Workbooks.Open(filePath, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); Excel.Sheets xlSayfa = xlKitap.Worksheets; var xlYeniSayfa = (Excel.Worksheet)xlSayfa.Add(xlSayfa[1], Type.Missing, Type.Missing, Type.Missing); xlYeniSayfa.Name = "yeniSayfa3"; xlYeniSayfa.Cells[1, 1] = "Yeni Sayfanın İlkaaa Hücresi"; xlYeniSayfa = (Excel.Worksheet)xlKitap.Worksheets.get_Item(1); xlYeniSayfa.Select(); xlKitap.Save(); xlKitap.Close(); MessageBox.Show("Yeni Sayfa Oluşturuldu ve Kayıt Eklendi"); /*ram üzerinden de boşlatıyoruz.*/ try { System.Runtime.InteropServices.Marshal.ReleaseComObject(xlProje); xlProje = null; } catch (Exception ex) { xlProje = null; MessageBox.Show("Hata" + ex.ToString()); } finally { GC.Collect(); } |
Ram üzerinden boşlatma işlemi yapmazsak oluşacak sorun aşağıdaki gibi olacaktır.
tek excel kitaplığına birden fazla sayfayı ve ismini nasıl ekleyebilirim?