İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# DataGridView Excel Oluşturma – Dışa Aktarma

C# DataGridView Excel Oluşturma – Dışa Aktarma
+ - 1

Merhabalar, bu yazımda C# DataGridView Excel Oluşturma – Dışa Aktarma konusuna bakacağız. DataGridView üzerindeki verileri bir Excel dosyası olarak dışa nasıl aktaracağımızı anlatmaya çalışacağım.  Bu kodlar hazır kodlar olduğundan yani üzerinde çok uğraşmadığım için tam bilgimin olmadığı bir konu olduğu için kodları tam olarak açıklayamayacağım. Bu sebeple çalışan kodları vereceğim sadece.

C# DataGridView Excel Oluşturma – Dışa Aktarma

Kodları vermeden önce projemize referans eklememiz gerekiyor.

Solution Explorer > Referances > Add Referance diyoruz. COM kısmına geliyoruz ve Microsoft Excel  16 Object Library ‘i bulup projemize ekliyoruz.

NOT: Buradaki 16 sayısı versiyondan dolayı değişiklik gösterbilir.

Referansı ekledikten sonra Referanslar kısmında Microsoft.Office.Core ve Microsoft.Office.Interop.Excel namespace’lerinin eklemiş olduğunu görebilirsiniz.

Bu dışa aktarma işlemini yaparken SaveFileDialog nesnesini de kullanacağız. Bu sayede nereye kaydetmek istediğimizi rahatlıkla belirleyebileceğiz.  Kodları aşağıda görebilirsiniz.

public static void Excel_Disa_Aktar(DataGridView dataGridView1)
        {

            SaveFileDialog save = new SaveFileDialog();
            save.OverwritePrompt = false;
            save.Title = "Excel Dosyaları";
            save.DefaultExt = "xlsx";
            save.Filter = "xlsx Dosyaları (*.xlsx)|*.xlsx|Tüm Dosyalar(*.*)|*.*";

            if (save.ShowDialog() == DialogResult.OK)
            {
                Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
                Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
                app.Visible = true;
                worksheet = workbook.Sheets["Sayfa1"];
                worksheet = workbook.ActiveSheet;
                worksheet.Name = "Excel Dışa Aktarım";
                for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
                {
                    worksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
                }
                for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
                    }
                }
                workbook.SaveAs(save.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                app.Quit();
            }
        }

Kodlarımızda gördüğünüz gibi ilk olarak bir SaveFileDialog açıyoruz. Bu diyalog penceresinde Tamam butonuna tıkladığında verdiğimiz isim ile verdiğimiz yola kaydetme işlemi yapılıyor.

Kodları incelediğimizde, DataGridView’deki hücrelerin for döngüleri ile teker teker okunup Excel dosyasına eklendiğini anlayabiliyoruz.

NOT: Office programınız ingizlice ise Sayfa1 kısmında hata alabilirsiniz. O zaman Sheet1 olarak değiştirmeyi deneyebilirsiniz.

Kayıt yerini, app.Quit(); satırının hemen üstündeki satırda yer alan save.FileName kısmıdır. Sürekli belirli bir yere ve belirli bir ad ile kaydetmek istiyorsanız SaveFileDialog kısmını silerek bu kısmı değiştirebilirsiniz.

Bir Class İle Kullanmak

Bu metodu olduğu gibi bir Class içerisine alabilirsiniz. İlk satırda gördüğünüz gibi bu metod DataGridView nesnesi alan bir parametreye sahip. Bu kodlara bir class dosyası içerisine aldıktan sonra aşağıdaki gibi tek satır olarak kullanabilirsiniz.

 DısaAktarmalar.Excel_Disa_Aktar(dataGridView1);

Burada bu kodlarımı eklediğim class’ımın adı DısaAktarmalar ‘dır.

 


C# DataGridView Excel Oluşturma – Dışa Aktarma dersimizde bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere…

Bu sıkıntılı zamanlarda çok dışarı çıkmamaya ve elinizden geldiğince temizliğine özen göstermeye çalışın. Sevgi ve saygılarımla…

Ek bir DLL gerektirdiğinden bu dersi Github projeme eklemiş olsamda çalışmayacaktı bu sebeple eklemedim.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Sağlıcakla ve takipte kalın. ?

 

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (1)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.