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.
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.
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.
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ı.
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.
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?