Altbilgi içeriğine atla
IRONXL KULLANARAK

C# ile Sütun Başlıklarıyla birlikte DataGridView'i Excel'e Aktarma

Excel ile Kolon Başlıklarıyla Bir DataGridView'i C#'ta Nasıl Dışa Aktarırsınız?

Windows Forms DataGridView kontrolünden Excel formatına veri dışa aktarma, yaygın bir gereksinimdir, ancak geliştiriciler genellikle sinir bozucu bir duvarla karşılaşır: dışa aktarılan dosya kolon başlıklarını içermez. Kolon başlıklarıyla DataGridView'i Excel'e dışa aktarmanız gerektiğinde, çözüm tüm verilerinizi ve formatlama ayarlarınızı güvenilir bir şekilde korumalıdır. Microsoft Office Interop'u kullanan geleneksel yaklaşımlar yavaş, kırılgan olabilir ve kodu çalıştıran her makinede MS Excel kurulu olmasını gerektirir.

IronXL bu sorunu temiz bir şekilde çözer. Bu bir .NET Excel kütüphanesidir, Office bağımlılığı olmadan Excel dosyalarını okur, oluşturur ve yazar. Bu eğitim, kolon başlıklarını, veri türlerini, boş hücreleri ve kullanıcı dostu dosya kaydetmeyi sadece birkaç satır kodla ele alan eksiksiz bir dışa aktarma çözümüne sizi götürür.

Sonunda, tüm kolon başlıklarını sağlam tutarak bir DataGridView'i bir XLSX dosyasına dışa aktaran çalışan bir Windows Forms buton işleyiciniz olacak.

Başlamadan Önce Nelere İhtiyacınız Var

Herhangi bir kod yazmadan önce, aşağıdakilerin mevcut olduğundan emin olun:

  • Visual Studio 2022 veya daha yenisi (herhangi bir sürüm)
  • .NET 10 SDK yüklü
  • .NET 10'u hedefleyen bir Windows Forms Uygulama projesi
  • IronXL'i kurmak için NuGet erişimi

Aşağıdaki örnekler üst düzey ifadeler ve modern .NET 10 proje yapısını kullanır.

Bir .NET Projesinde Kütüphane Nasıl Kurulur?

Visual Studio'da NuGet Paket Yöneticisi Konsolunu açın ve aşağıdaki komutlardan birini çalıştırın. Paket NuGet Galerisi'nde listelenmiştir ve .NET Standard 2.0 ve üzerini hedefler, bu nedenle modern .NET projeleri ile çalışır.

Install-Package IronXL
Install-Package IronXL
SHELL
dotnet add package IronXL
dotnet add package IronXL
SHELL

Kurulumdan sonra, form dosyanızın üst kısmına gerekli ad alanlarını ekleyin:

using IronXL;
using System;
using System.Data;
using System.Windows.Forms;
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;
Imports IronXL
Imports System
Imports System.Data
Imports System.Windows.Forms
$vbLabelText   $csharpLabel

Bu ithalatlar, dışa aktarma işlemi için gereken IronXL'in Excel fonksiyonelliği, DataTable işlemleri ve Windows Forms kontrollerine erişim sağlar.

Örnek Verilerle Bir DataGridView Nasıl Kurulur?

Visual Studio'da bir Windows Forms Uygulaması oluşturarak başlayın. Tasarımcı aracılığıyla ana forma dataGridView1 adında bir DataGridView ve btnExport adında bir Buton ekleyin. Ardından form yüklendiğinde tabloyu doldurun:

using System;
using System.Data;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();

        // Define columns -- these names become Excel headers
        dt.Columns.Add("Product ID", typeof(int));
        dt.Columns.Add("Product Name", typeof(string));
        dt.Columns.Add("Price", typeof(decimal));
        dt.Columns.Add("Stock Quantity", typeof(int));

        // Add sample rows
        dt.Rows.Add(1001, "Laptop", 999.99m, 15);
        dt.Rows.Add(1002, "Mouse", 29.99m, 50);
        dt.Rows.Add(1003, "Keyboard", 79.99m, 30);
        dt.Rows.Add(1004, "Monitor", 299.99m, 12);
        dt.Rows.Add(1005, "Headphones", 89.99m, 25);

        // Bind data to the grid
        dataGridView1.DataSource = dt;
    }
}
using System;
using System.Data;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();

        // Define columns -- these names become Excel headers
        dt.Columns.Add("Product ID", typeof(int));
        dt.Columns.Add("Product Name", typeof(string));
        dt.Columns.Add("Price", typeof(decimal));
        dt.Columns.Add("Stock Quantity", typeof(int));

        // Add sample rows
        dt.Rows.Add(1001, "Laptop", 999.99m, 15);
        dt.Rows.Add(1002, "Mouse", 29.99m, 50);
        dt.Rows.Add(1003, "Keyboard", 79.99m, 30);
        dt.Rows.Add(1004, "Monitor", 299.99m, 12);
        dt.Rows.Add(1005, "Headphones", 89.99m, 25);

        // Bind data to the grid
        dataGridView1.DataSource = dt;
    }
}
Imports System
Imports System.Data
Imports System.Windows.Forms

Public Partial Class Form1
    Inherits Form

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim dt As New DataTable()

        ' Define columns -- these names become Excel headers
        dt.Columns.Add("Product ID", GetType(Integer))
        dt.Columns.Add("Product Name", GetType(String))
        dt.Columns.Add("Price", GetType(Decimal))
        dt.Columns.Add("Stock Quantity", GetType(Integer))

        ' Add sample rows
        dt.Rows.Add(1001, "Laptop", 999.99D, 15)
        dt.Rows.Add(1002, "Mouse", 29.99D, 50)
        dt.Rows.Add(1003, "Keyboard", 79.99D, 30)
        dt.Rows.Add(1004, "Monitor", 299.99D, 12)
        dt.Rows.Add(1005, "Headphones", 89.99D, 25)

        ' Bind data to the grid
        dataGridView1.DataSource = dt
    End Sub
End Class
$vbLabelText   $csharpLabel

dt.Columns.Add(...) çağrılarında tanımlanan sütun adları, dışa aktarılmış Excel dosyasında başlık satırı olacaktır. Burada herhangi bir veri kaynağını kullanabilirsiniz: bir veri tabanı sorgu sonucu, bir CSV içe aktarma veya bir DataTable olarak saklanan bir API yanıtı, gösterilen dışa aktarma koduyla aynı şekilde çalışır. DataTable yaklaşımı özellikle kullanışlıdır çünkü DataGridView, her türlü IList veya IBindingList kabul eden bir DataSource özelliği sunar, yani aynı dışa aktarma kodu, bağlama senaryolarının her birinde değiştirilmeden kullanılabilir.

DataGridView'iniz bir SqlDataAdapter kullanarak bir veritabanından dolduruluyorsa, DataTable zaten tipli sütunlar içerir. Bu tipli değerleri ToString() çağırmak yerine SetCellValue 'a geçirmek, Excel çıktısında sayısal sütunların sayısallığını korur, bu da herhangi bir raporlama veya özet tablo kullanımı için önemlidir.

Bu, tüm veriyle doldurulmuş bir DataGridView oluşturur:

C# IronXL Kullanarak DataGridView'i Sütun Başlıkları ile Excel'e Aktarma: Görüntü 1 - Bir DataGridView içindeki örnek veriler

Daha gelişmiş veri bağlama senaryoları için, Microsoft'un DataGridView veri bağlama üzerine belgelendirmesi ek örnekler sağlar.

Kolon Başlıklarını Saklarken DataGridView Excel'e Nasıl Dışa Aktarılır?

Dışa aktarma yöntemi, her DataGridView sütununun HeaderText özelliğinden sütun başlıklarını okur ve bunları çalışma sayfasının 0. satırına yazar. Veri satırları satır 1'den itibaren devam eder. Bu yöntemi btnExport tıklama olayına bağlayın:

private void btnExport_Click(object sender, EventArgs e)
{
    try
    {
        // Create a new Excel workbook in XLSX format
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Exported Data");

        // Write column headers to row 0
        for (int col = 0; col < dataGridView1.Columns.Count; col++)
        {
            worksheet.SetCellValue(0, col, dataGridView1.Columns[col].HeaderText);
        }

        // Write data rows starting at row 1
        for (int row = 0; row < dataGridView1.Rows.Count; row++)
        {
            // Skip the placeholder new-row at the bottom of the grid
            if (dataGridView1.AllowUserToAddRows && row == dataGridView1.Rows.Count - 1)
                continue;

            for (int col = 0; col < dataGridView1.Columns.Count; col++)
            {
                var cellValue = dataGridView1.Rows[row].Cells[col].Value;
                if (cellValue != null)
                {
                    worksheet.SetCellValue(row + 1, col, cellValue.ToString());
                }
            }
        }

        // Prompt the user to choose a save location
        using SaveFileDialog saveFileDialog = new SaveFileDialog
        {
            Filter = "Excel Files|*.xlsx",
            FileName = "DataGridView_Export.xlsx"
        };

        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            workbook.SaveAs(saveFileDialog.FileName);
            MessageBox.Show("Export completed successfully!", "Success",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show($"Export failed: {ex.Message}", "Error",
                       MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}
private void btnExport_Click(object sender, EventArgs e)
{
    try
    {
        // Create a new Excel workbook in XLSX format
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Exported Data");

        // Write column headers to row 0
        for (int col = 0; col < dataGridView1.Columns.Count; col++)
        {
            worksheet.SetCellValue(0, col, dataGridView1.Columns[col].HeaderText);
        }

        // Write data rows starting at row 1
        for (int row = 0; row < dataGridView1.Rows.Count; row++)
        {
            // Skip the placeholder new-row at the bottom of the grid
            if (dataGridView1.AllowUserToAddRows && row == dataGridView1.Rows.Count - 1)
                continue;

            for (int col = 0; col < dataGridView1.Columns.Count; col++)
            {
                var cellValue = dataGridView1.Rows[row].Cells[col].Value;
                if (cellValue != null)
                {
                    worksheet.SetCellValue(row + 1, col, cellValue.ToString());
                }
            }
        }

        // Prompt the user to choose a save location
        using SaveFileDialog saveFileDialog = new SaveFileDialog
        {
            Filter = "Excel Files|*.xlsx",
            FileName = "DataGridView_Export.xlsx"
        };

        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            workbook.SaveAs(saveFileDialog.FileName);
            MessageBox.Show("Export completed successfully!", "Success",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show($"Export failed: {ex.Message}", "Error",
                       MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}
Private Sub btnExport_Click(sender As Object, e As EventArgs)
    Try
        ' Create a new Excel workbook in XLSX format
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Exported Data")

        ' Write column headers to row 0
        For col As Integer = 0 To dataGridView1.Columns.Count - 1
            worksheet.SetCellValue(0, col, dataGridView1.Columns(col).HeaderText)
        Next

        ' Write data rows starting at row 1
        For row As Integer = 0 To dataGridView1.Rows.Count - 1
            ' Skip the placeholder new-row at the bottom of the grid
            If dataGridView1.AllowUserToAddRows AndAlso row = dataGridView1.Rows.Count - 1 Then
                Continue For
            End If

            For col As Integer = 0 To dataGridView1.Columns.Count - 1
                Dim cellValue = dataGridView1.Rows(row).Cells(col).Value
                If cellValue IsNot Nothing Then
                    worksheet.SetCellValue(row + 1, col, cellValue.ToString())
                End If
            Next
        Next

        ' Prompt the user to choose a save location
        Using saveFileDialog As New SaveFileDialog With {
            .Filter = "Excel Files|*.xlsx",
            .FileName = "DataGridView_Export.xlsx"
        }
            If saveFileDialog.ShowDialog() = DialogResult.OK Then
                workbook.SaveAs(saveFileDialog.FileName)
                MessageBox.Show("Export completed successfully!", "Success",
                                MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        End Using
    Catch ex As Exception
        MessageBox.Show($"Export failed: {ex.Message}", "Error",
                       MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
End Sub
$vbLabelText   $csharpLabel

Dışa Aktarma Adımlarının Ayrıştırılması

Yöntemin her adımı belirli bir amaca hizmet eder:

  • WorkBook.Create: XLSX formatını kullanarak bellekte yeni bir Excel dosyası başlatır. Hiçbir dosya, SaveAs çağrılmadıkça disk üzerine yazılmaz.
  • CreateWorkSheet: Dışa aktarılan verileri tutacak adlandırılmış bir sayfa ekler. "Dışa Aktarılan Veriler" adı, Excel'de sekme etiketi olarak görünür.
  • Sütun başlık döngüsü: Her sütun için dataGridView1.Columns[col].HeaderText okur ve bunu 0. satır dizinine yazar. Bu, başlıkları koruyan ana adımdır.
  • Veri satırı döngüleri: İç içe döngüler her satır ve sütunu iterasyonla yürütür, row + 1 'yi Excel satır dizini olarak kullanarak verilerin her zaman başlık satırının altında başlamasını sağlar.
  • Null kontrolü: Gerçek verilerde yaygın olan bir durumda bir hücre değer içermediğinde istisnaları önler.
  • SaveFileDialog: Kullanıcıların çalışma zamanı sırasında dosya adını ve hedefi seçmesine olanak tanır, bu şekilde bir yol kodlanmamıştır.

Dışa aktarılan dosya şu şekilde görünür:

C# IronXL Kullanarak DataGridView'i Sütun Başlıkları ile Excel'e Aktarma: Görüntü 2 - Dışa aktarılan örnek verinin yer aldığı çıktının Excel dosyası

Yaygın Kenar Durumları Dışa Aktarım Sırasında Nasıl Yönetilir?

Gerçek dünya verileri nadiren bir örnek veri seti kadar temiz görünür. Karşılaşmanız muhtemel senaryolar ve bunların nasıl ele alınacağı aşağıda verilmiştir.

Boş Hücreler

Veri döngüsündeki null kontrolü (if (cellValue != null)), boş hücreleri bir istisna oluşturmadan işler. Boş hücreler Excel çıktısında boş kalır, ızgara yapısını korur.

Karışık Veri Türleri

IronXL farklı veri formatlarını otomatik olarak yönetir. Bir sayıyı ToString() üzerinden bir dize olarak geçtiğinizde, Excel hala onu değerine bağlı olarak sayısal olarak tanıyabilir. Kesin tür kontrolü için, hücre değerini yazmadan önce doğru türe dökün:

if (cellValue is int intVal)
    worksheet.SetCellValue(row + 1, col, intVal);
else if (cellValue is decimal decVal)
    worksheet.SetCellValue(row + 1, col, (double)decVal);
else
    worksheet.SetCellValue(row + 1, col, cellValue?.ToString() ?? string.Empty);
if (cellValue is int intVal)
    worksheet.SetCellValue(row + 1, col, intVal);
else if (cellValue is decimal decVal)
    worksheet.SetCellValue(row + 1, col, (double)decVal);
else
    worksheet.SetCellValue(row + 1, col, cellValue?.ToString() ?? string.Empty);
If TypeOf cellValue Is Integer Then
    Dim intVal As Integer = CType(cellValue, Integer)
    worksheet.SetCellValue(row + 1, col, intVal)
ElseIf TypeOf cellValue Is Decimal Then
    Dim decVal As Decimal = CType(cellValue, Decimal)
    worksheet.SetCellValue(row + 1, col, CDbl(decVal))
Else
    worksheet.SetCellValue(row + 1, col, If(cellValue?.ToString(), String.Empty))
End If
$vbLabelText   $csharpLabel

Bu yaklaşım, Excel'de sayısal kolonları sayısal tutar böylece formüller ve sıralama, downstream doğru çalışır.

Başlıklardaki Özel Karakterler

&, <, > gibi özel karakterleri içeren sütun başlıkları ve aksanlı harfler doğru şekilde dışa aktarılır. IronXL kodlamayı otomatik olarak yönetir ve kaçış gerektirmez.

Büyük Veri Setleri

On binlerce satır içeren ızgaralar için, kullanıcı arayüzünü duyarlı tutmak amacıyla dışa aktarma mantığını bir arka plan iş parçacığına taşımayı düşünün. WorkBook.Create ve döngü mantığını bir Task.Run çağrısına sarın ve tamamlanan geri aramadan kullanıcı arayüzünü güncelleyin. Microsoft'un Görev ile async programlaması üzerine belgelendirmesi deseni ayrıntılı olarak açıklar.

Hücre stili verme, formül koruma ve şifre koruma gibi ek senaryolar için IronXL belgelendirmesi her birini ayrıntılı olarak kapsar.

Başlıca Dışa Aktarım Yaklaşımları Nasıl Karşılaştırılır?

Bir kütüphaneye kesin karar vermeden önce, en yaygın yöntemler arasındaki değiş-tokuşları anlamak faydalıdır.

C#'ta DataGridView'den Excel'e dışa aktarma yöntemlerinin karşılaştırması
Yöntem Ofis Gerekli Kolon Başlıkları Performans Sunucu Güvenliği
Microsoft Office Interop Evet Manuel Yavaş Hayır
OpenXml SDK Hayır Manuel Hızlı Evet
ClosedXML Hayır Manuel İyi Evet
IronXL Hayır Otomatik Hızlı Evet

Interop tabanlı çözümler, sunucuya Excel kurulu olmasını gerektirir, bu hem lisanslama hem de dağıtım karmaşıklığıdır. OpenXml SDK güçlü ancak düşük seviyeli -- başlık satırı yazmak, XML yapıları manuel olarak inşa etmeyi gerektirir. IronXL ve ClosedXML her ikisi de daha yüksek seviyede API'ler sunar, ancak IronXL'in WorkBook ve WorkSheet modeli, geliştiricilerin zaten elektronik tablolar hakkında düşündüklerine yakın bir şekilde haritalar.

CSV Yerine XLSX'e Nasıl Dışa Aktarılır?

Bir CSV dosyasına ihtiyaç duyduğunuzda aynı dışa aktarma paterni geçerlidir. Dosya formatını ve uzantısını değiştirin:

WorkBook csvWorkbook = WorkBook.Create(ExcelFileFormat.CSV);
WorkSheet csvSheet = csvWorkbook.CreateWorkSheet("Data");

// Headers and data loops remain identical

using SaveFileDialog dialog = new SaveFileDialog
{
    Filter = "CSV Files|*.csv",
    FileName = "DataGridView_Export.csv"
};

if (dialog.ShowDialog() == DialogResult.OK)
    csvWorkbook.SaveAs(dialog.FileName);
WorkBook csvWorkbook = WorkBook.Create(ExcelFileFormat.CSV);
WorkSheet csvSheet = csvWorkbook.CreateWorkSheet("Data");

// Headers and data loops remain identical

using SaveFileDialog dialog = new SaveFileDialog
{
    Filter = "CSV Files|*.csv",
    FileName = "DataGridView_Export.csv"
};

if (dialog.ShowDialog() == DialogResult.OK)
    csvWorkbook.SaveAs(dialog.FileName);
Imports System.Windows.Forms

Dim csvWorkbook As WorkBook = WorkBook.Create(ExcelFileFormat.CSV)
Dim csvSheet As WorkSheet = csvWorkbook.CreateWorkSheet("Data")

' Headers and data loops remain identical

Using dialog As New SaveFileDialog With {
    .Filter = "CSV Files|*.csv",
    .FileName = "DataGridView_Export.csv"
}
    If dialog.ShowDialog() = DialogResult.OK Then
        csvWorkbook.SaveAs(dialog.FileName)
    End If
End Using
$vbLabelText   $csharpLabel

Yeniden düzenleme sistemi XLSX desteklemiyorsa veya dosya boyutu çok büyük veri setleri için bir endişe ise, CSV dışa aktarıma ihtiyaç duyulabilir.

Dışa Aktarılan Dosyadaki Başlık Satırı Nasıl Stilize Edilir?

Dışa aktarılan veri, başlık satırı gözle görülür bir şekilde farklı olduğunda daha okunabilir. IronXL, başlık değerlerini yazdıktan sonra kalın metin, arka plan rengi ve yazı tipi boyutu uygulamanıza izin veren hücre stil verme seçenekleri sağlar.

// Write headers and apply bold styling
for (int col = 0; col < dataGridView1.Columns.Count; col++)
{
    string cellAddress = worksheet.GetCellAddress(0, col);
    worksheet[cellAddress].Value = dataGridView1.Columns[col].HeaderText;
    worksheet[cellAddress].Style.Font.Bold = true;
    worksheet[cellAddress].Style.SetBackgroundColor("#4472C4");
    worksheet[cellAddress].Style.Font.FontColor = "#FFFFFF";
}
// Write headers and apply bold styling
for (int col = 0; col < dataGridView1.Columns.Count; col++)
{
    string cellAddress = worksheet.GetCellAddress(0, col);
    worksheet[cellAddress].Value = dataGridView1.Columns[col].HeaderText;
    worksheet[cellAddress].Style.Font.Bold = true;
    worksheet[cellAddress].Style.SetBackgroundColor("#4472C4");
    worksheet[cellAddress].Style.Font.FontColor = "#FFFFFF";
}
' Write headers and apply bold styling
For col As Integer = 0 To dataGridView1.Columns.Count - 1
    Dim cellAddress As String = worksheet.GetCellAddress(0, col)
    worksheet(cellAddress).Value = dataGridView1.Columns(col).HeaderText
    worksheet(cellAddress).Style.Font.Bold = True
    worksheet(cellAddress).Style.SetBackgroundColor("#4472C4")
    worksheet(cellAddress).Style.Font.FontColor = "#FFFFFF"
Next col
$vbLabelText   $csharpLabel

Stilize edilmiş bir başlık satırı, alıcının manuel olarak formatlama uygulama gereksinimi olmadan, dışarı aktarılan dosyanın hemen raporlama için kullanılabilir olmasını sağlar. Tüm stil özelliklerinin tam listesini görmek için, IronXL hücre stil verme referansına bakın.

Ücretsiz Deneme ile Nasıl Başlarsınız?

IronXL, bu makalede gösterilen dışa aktarma iş akışları dahil, tüm özellikleri denemenizi sağlayan ücretsiz bir deneme sunar. Yukarıda gösterilen herhangi bir NuGet komutu ile paketi kurun, IronXL lisanslama sayfasında bir deneme anahtarı oluşturun ve ilk kütüphane çağrınızdan önce uygulamanıza ayarlayın:

IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronXl

IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
$vbLabelText   $csharpLabel

Deneme tam işlevsel Excel dosyaları üretir ve hangi özelliklerin kullanılabilir olduğunu kısıtlamaz. Üretim dağıtımı için, lisanslama seçenekleri tek geliştiricileri, ekipleri ve telif ücretsiz yeniden dağıtımı kapsar.

İlgili dışa aktarma senaryoları için, IronXL'in DataTable'ları doğrudan Excel'e dışa aktarmayı, Excel dosyalarını DataGridView'lere okumayı ve dışarı aktarılan verilerden grafikler oluşturmayı nasıl ele aldığını keşfedin.

Kullanım Durumunuz İçin Doğru Dışa Aktarma Stratejisini Seçme

Bu eğitim boyunca gösterilen hücre bazında dışa aktarma yöntemi, çoğu Windows Forms uygulamasına uygun düşer. VeriTablonuz bir DataTable'a bağlıysa, DataTable'ı doğrudan IronXL'nin DataTable'dan çalışma sayfası dönüştürücüsüne geçirebilirsiniz, bu da başlık satırını otomatik olarak işler. Sütun düzeniniz sabitse ve mümkün olan en kısa kod yolunu istiyorsanız, doğrudan DataTable yaklaşımını seçin. Her hücre için koşullu mantığa ihtiyaçınız olduğunda, örneğin, değeri kabul edilebilir bir aralık dışında olan hücreleri vurgulamak veya yazmadan önce boş değerleri açıkça haritalamak gibi, manuel hücre bazında yaklaşım seçin.

İndirilebilir Excel raporları üreten ASP.NET Core kontrolörleri gibi sunucu tarafı senaryoları için, aynı IronXL API'si geçerlidir. Tek fark, kaydetme hedefidir: SaveAs(filePath) yerine, workbook.ToByteArray() çağırın ve baytları, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet içerik türüyle HTTP yanıtına yazın. Çıktı bir dosyaya mı yoksa bir akışa mı gider fark etmeksizin, sütun başlıkları aynı şekilde aktarılır.

Sıkça Sorulan Sorular

C# dilinde DataGridView verilerini Excel'e nasıl aktarırım?

IronXL kütüphanesini kullanarak bir Excel çalışma kitabı oluşturun, başlıkları 0. satıra yazmak için DataGridView sütunlarını yineleyin, ardından veri satırlarını yineleyin ve hücre değerlerini 1. satırdan itibaren yazın. SaveAs ile çalışma kitabını kaydedin.

Veri dışa aktarmak için IronXL kullanmanın avantajı nedir?

IronXL, Microsoft Office kurulumuna gerek duymayan Excel işlemleri için üst düzey bir API sağlar. Başlıklar, veri tipleri ve dosya formatlarını manuel XML manipülasyonu olmadan ele alır.

DataGridView'den Excel'e veri aktarırken sütun başlıklarını korumak mümkün mü?

Evet. Her DataGridView sütununun HeaderText özelliğini okuyun ve veri satırlarını yazmadan önce IronXL çalışma sayfasının 0. satırına yazın.

Excel'e dışa aktarma için IronXL kullanmaya başlamak için denememem gerekiyor mu?

Tüm özelliklere erişim sağlayan ücretsiz bir deneme sürümü mevcuttur. NuGet paketini yükleyin, bir deneme anahtarı oluşturun ve herhangi bir kütüphane çağrısı yapmadan önce IronXl.License.LicenseKey ayarlayın.

IronXL, Excel'e dışa aktarma yaparken büyük DataGridView veri setlerini yönetebilir mi?

Evet. Çok büyük ızgaralar için, IronXL verileri yazarken kullanıcı arayüzünün duyarlılığını korumak için Task.Run kullanarak dışa aktarımı bir arka plan iş parçacığında çalıştırabilirsiniz.

IronXL kullanarak DataGridView'i Excel'e aktarmanın adımları nelerdir?

IronXL'yi kurun, bir WorkBook ve WorkSheet oluşturun, DataGridView sütunlarını döngü yaparak 0. satıra yazın, satırları döngü yaparak 1. satırdan veri yazın, ardından dosyayı yazmak için SaveAs'i çağırın.

Excel'e dışa aktarma için diğer kütüphaneler yerine neden IronXL'i seçmelisiniz?

IronXL, Office kurulumu gerektirmez, sunucularda çalışır ve geliştiricilerin elektronik tablolara yönelik düşünce biçimlerine doğal olarak eşleşen temiz bir WorkBook/WorkSheet API'si sağlar - güçlü belgeler ve aktif destek ile birlikte.

IronXL ile ilgili sorunları çözmek için destek mevcut mu?

Evet. IronXL, lisanslı müşteriler için ayrıntılı API belgeleri, kod örnekleri ve doğrudan mühendislik desteği sağlar.

IronXL ile Excel dışa aktarma sürecini özelleştirebilir miyim?

Evet. Verileri yazdıktan sonra IronXL'in Style API'sini kullanarak herhangi bir hücre aralığına kalın yazı tipleri, arka plan renkleri, kenarlıklar ve sayı formatları uygulayabilirsiniz.

IronXL, Excel dışında başka formatlara veri ihraç etmeyi destekliyor mu?

Evet. IronXL, XLSX, XLS, CSV ve TSV formatlarını destekler. Format değiştirmek, yalnızca WorkBook.Create'e geçirilen ExcelFileFormat enum değerini değiştirmeyi gerektirir.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara