9 November 2025 Sunday 10:46:51


C# Windows Form DataGrid Verilerini Excel Dosyasına Aktarma

C# Windows Form DataGrid Verilerini Excel Dosyasına Aktarma

Bu örnekte C# Windows Formda bulunan DataGridView denetimi içindeki verileri nasıl Ms Excel dosyasına aktarabileceğinizi göstereceğim.

DataGridView, Windows Forms uygulamalarında verilerin görsel olarak görüntülenmesini sağlayan bir kullanıcı arayüz elemanıdır. DataGridView, satır ve sütunlar şeklinde verileri görüntüler ve verilere görsel olarak erişim, düzenleme, sıralama, filtreleme gibi işlemler yapabilme imkanı sunar.

DataGridView için farklı veritabanlarından (Access, SQL Server, MySql vb.) ve değişik yöntemlerle verilerinizi çekebilirsiniz veya programatik olarak verilerinizin yüklenmesini sağlayabilirsiniz.

Şimdi konumuza dönelim. DataGridview içindeki verileri excel’ e aktarmak için aşağıdaki adımları takip edebilirsiniz.

Adım 1: Formumuzu aşağıdaki gibi tasarlıyoruz.

 

 

 

 

 

 

 

 

 

 

Adım 2: Microsoft.Office.Interop.Excel NuGet paketini yüklemek için Solution Explorer penceresinden projemiz üzerine sağ tıklayarak Manage Nuget Package tıklıyoruz.

Gelen pencerede arama bölümüne Excel yazarak alttaki görselde görüldüğü gibi paketimizi yüklüyoruz.

Adım 3: İlk olarak Microsoft.Office.Interop.Excel kütüphanesini using ile import edelim.

using Microsoft.Office.Interop.Excel;

Adım 4: Şimdi de verilerin Excel dosyamıza aktarımını sağlayacak metodumuzu oluşturalım. Button'a yazacağımız kodu aşağıdaki gibi yazalım.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;

namespace DenemeProjeler
{
    public partial class ExcelVeriAktar : DevExpress.XtraEditors.XtraForm
    {
        public ExcelVeriAktar()
        {
            InitializeComponent();            
        }

        private void ExcelVeriAktar_Load(object sender, EventArgs e)
        {
            dataGridView1.ColumnCount = 3;
            dataGridView1.Columns[0].Name = "Ad";
            dataGridView1.Columns[1].Name = "Soyad";
            dataGridView1.Columns[2].Name = "Telefon";

            dataGridView1.Rows.Add();
            dataGridView1.Rows[0].Cells[0].Value = "System";
            dataGridView1.Rows[0].Cells[1].Value = "Error";
            dataGridView1.Rows[0].Cells[2].Value = "28321239";

            dataGridView1.Rows.Add();
            dataGridView1.Rows[1].Cells[0].Value = "Error";
            dataGridView1.Rows[1].Cells[1].Value = "System";
            dataGridView1.Rows[1].Cells[2].Value = "75251212";

            dataGridView1.Rows.Add();
            dataGridView1.Rows[2].Cells[0].Value = "System";
            dataGridView1.Rows[2].Cells[1].Value = "Error";
            dataGridView1.Rows[2].Cells[2].Value = "28321239";

            dataGridView1.Rows.Add();
            dataGridView1.Rows[3].Cells[0].Value = "Error";
            dataGridView1.Rows[3].Cells[1].Value = "System";
            dataGridView1.Rows[3].Cells[2].Value = "75251212";

            dataGridView1.Rows.Add();
            dataGridView1.Rows[4].Cells[0].Value = "System";
            dataGridView1.Rows[4].Cells[1].Value = "Error";
            dataGridView1.Rows[4].Cells[2].Value = "28321239";

            dataGridView1.Rows.Add();
            dataGridView1.Rows[5].Cells[0].Value = "Error";
            dataGridView1.Rows[5].Cells[1].Value = "System";
            dataGridView1.Rows[5].Cells[2].Value = "75251212";
        }

        private void btnExcel_Click(object sender, EventArgs e)
        {
            ExportToExcel(dataGridView1);
        }



        void ExportToExcel(DataGridView dgv)
        {
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            excel.Visible = true;

            Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(System.Reflection.Missing.Value);
            Microsoft.Office.Interop.Excel.Worksheet sheet1 = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1];

            int colIndex = 0;
            foreach (DataGridViewColumn col in dgv.Columns)
            {
                if (!col.Visible) continue;

                colIndex++;
                excel.Cells[1, colIndex] = col.HeaderText;
            }

            int rowIndex = 0;
            foreach (DataGridViewRow row in dgv.Rows)
            {
                rowIndex++;
                colIndex = 0;
                foreach (DataGridViewCell cell in row.Cells)
                {
                    if (!dgv.Columns[cell.ColumnIndex].Visible) continue;

                    colIndex++;
                    excel.Cells[rowIndex + 1, colIndex] = cell.Value;
                }
            }

            Microsoft.Office.Interop.Excel.Range c1 = (Microsoft.Office.Interop.Excel.Range)sheet1.Cells[1, 1];
            Microsoft.Office.Interop.Excel.Range c2 = (Microsoft.Office.Interop.Excel.Range)sheet1.Cells[rowIndex, colIndex];
            Microsoft.Office.Interop.Excel.Range range = sheet1.Range[c1, c2];
            range.Columns.AutoFit();

        }        
    }
}

Ekran Çıktısı :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

img

ibrahim ÖZKAN