C# İle Excel Dosyasını Kaydetme

Bir önceki yazımda C# ile Excel Dosyasının Nasıl Oluşturulduğunu anlatmıştım. Bu yazımda ise oluşturulan bu Excel Dosyasının Nasıl Kaydedildiğini anlatmaya çalışacağım.

Not: Örnek projeyi makalenin sonunda bulabilirsiniz.

Oluşturulan Excel dosyasını kaydederken Çalışma Kitabından faydalanırız. Çalışma Kitabı içinde ki Save ve SaveAs fonksiyonları ile kayıt yapabiliriz.

Save fonksiyonu, önceden kayıt edilmiş bir dosya üzerinde, değişiklikleri yaptığımızda uygularız.

SaveAs fonksiyonunda ise önceden kayıt edilmiş olsun veya olmasın, dosyayı herhangi bir dizine kaydedebiliriz. SaveAs fonksiyonunun 12 parametresi bulunmaktadır. Elbette bunların hepsini bilme ihtiyacımız yok. İhtiyacımız olan veya benim şu ana kadar en fazla kullandığım 5 -6 tane parametre bulunmaktadır.

Şimde SaveAs fonksiyonunun parametrelerini tanıyalım.

SaveAs fonksiyonunun parametreleri

  • FileName

Excel dosyasını kaydetmek için vereceğimiz dosya ismidir. Yani kayıt edilecek dizinin, dosya adıyla birlikte ki yoludur.

Örnek Kullanım : C:\Excel1.xlsx

  • FileFormat

Excel dosyasının formatını bu parametrede belirliyoruz.   Eğer normal excel dosyası oluşturacaksak, xlWorkbookDefault seçmeliyiz.

Örnek Kullanımı : Excel.XlFileFormat.xlWorkbookDefault

Ayrıca diğer formatlara göz atmak için  burada ki listeye bakabilirsiniz.

  • Password

Eğer Excel dosyasına şifre koymak istiyorsak, bu parametreyi kullanıyoruz. Eğer şifre koymak istemezsek Type.Missing veya boş bırakarak geçebiliriz. Zaten görüldüğü gibi varsayılan seçenek olarak Type.Missing verilmiştir.

Örnek Kullanım : 12345 gibi

  • WriteResPassword

Bu özellik dosyaya yazma izni verilmesi için gerekli şifrenin gönderildiği parametredir. Yani buraya verdiğiniz parametre ile dosyayı yazma iznine kapıyoruz. Eğer herhangi bir kişi bu şifreyi bilmezse dosya salt okunur olarak açılır.

Örneğin bir ödeme listesi dosyamız var. Bu ödeme listesi dosyasına bir adet giriş şifresi koyduk. Password parametresine 123 gönderdim. Bu şifreyi iş yerimiz deki  tüm çalışanlara verdik. Fakat bu dosya üzerinde değişiklikleri, sadece muhasebe deki çalışanların yapmasını istiyorum. O halde bu parametreye 111 gönderirsek,istediğimizi yapmış oluruz. Bu haliyle tüm çalışanlarım bu dosyaya ulaşabiliyor. Ama sadece yazma şifresini  bilen (111) çalışanlarım dosya üzerinde değişiklik yapabilecek. Diğer çalışanlarım sadece dosyayı açabilecek fakat değişiklik yapamayacaklardır.

Örnek Kullanım : 123456789 gibi

  • ReadOnlyRecommended

Dosya her açılışta Salt Okunur olarak açılmasını öneren bir mesaj çıkar.

Öneri Mesajı

Örnek Kullanım : false

  • AddToMru

Excel’de son kullanılan dosyalar listesine dosyayı ekler.

Örnek Kullanım : true

  • AccessMode

Bu seçenek erişim izinleriyle ilgili olduğunu zannediyorum. Diğer seçenekler için burayı ziyaret edebilirsiniz.

Örnek Kullanım : Excel.XlSaveAsAccessMode.xlExclusive

Parametreleri verdikten sonra örnek bir çalışma yapabiliriz.

  • Çalışma Kitabını Şifreli Nasıl Kayıt Edebiliriz ?
CalismaKitabi.SaveAs(@"C:\Excel1.xlsx",
                Excel.XlFileFormat.xlWorkbookDefault,
                "123456",
                Type.Missing,
                false,
                Type.Missing,
                Excel.XlSaveAsAccessMode.xlExclusive);
  • Çalışma Kitabını Şifresiz Normal Nasıl Kayıt Edebiliriz?
CalismaKitabi.SaveAs(@"C:\Excel1.xlsx",
                Excel.XlFileFormat.xlWorkbookDefault,
                Type.Missing,
                Type.Missing,
                false,
                Type.Missing,
                Excel.XlSaveAsAccessMode.xlExclusive);

Bu makale için yapmış olduğum örnek çalışma : C# Ile Excel Dosyasini Kaydetme (1453)

Lütfen sorularınızı bu makalenin yorumlar kısmında sorunuz.

This entry was posted in Excel, Visual C# .Net and tagged , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink.

10 Responses to C# İle Excel Dosyasını Kaydetme

  1. Cemşit says:

    Paylaşım için çok teşekkür ederim.Yalnız örnek çalışma çalışmıyor.Exe’si de hata veriyor.Tekrardan yüklemeniz mümkün mü acaba?

  2. Ehocam says:

    Örnek Uygulamanın çalışması için gerekli kütüphanelerin bilgisayarınızda kurulu olması gerekiyor. Eğer kütüphanelerin kurulduğundan eminseniz, tekrar kontrol ederim. 🙂 İyi çalışmalar.

  3. yunus says:

    çok teşeür ederim çok yararlı bilgiler.

  4. kerem says:

    Emeğinize sağlık güzel paylaşımlar yapıyorsunuz. Benim takıldığım bir nokta var yardımcı olur musunuz? Var Olan Bir Excel dosyam var masaüstünde , bu dosyaya textbox larla bazı hücrelere veri aktarmak istiyorum, nasıl yaparım?

  5. Emin Aydın EROĞLU says:

    Hocam merhabalar öncelikle paylaşımınız için çok teşekkür ederim. Benzer bir çalışma yaptım fakat bana şöyle bişey lazım ben kaydedeceğim dosyanın adını sabit değil bir değişken olmasını istiyorum. Bunu bir türlü gerçekleştiremedim. Bunu nasıl yapabilirim?

  6. @emin, FileName parametresi gelecek yere dinamik olarak istediğin bir ismi verebilirsin.

    var name = "dinamikExcelDosyasınınAdı.xls";
    var fileName = String.Format("{0}",name);

  7. deniz yakut says:

    hocam merhabalar ,
    excel uzantımızın xls veya xlsx olması hangi noktada farklılıklar yaratıyor acaba ??

  8. Merhaba Deniz,

    – Xls ve xlsx arasında ki farklardan birisi kayıt edebileceğin kayıt sayısıdır.
    – Xls default uzantıdır.
    – Xls tüm excel sürümlerinde açabilirsin. Xlsx uzantısını 2007 ve sonrasında açabilirsin.

Leave a Reply

Your email address will not be published. Required fields are marked *