IronXL ile C#'da DataGridView'i Excel'e nasıl aktaracağınızı öğrenin.
Bir DataGridView'den Excel dosyasına veri aktarmak, IronXL kullanırken sadece birkaç satır C# kodu gerektirir. Bir WorkBook oluşturun, gridin sütunları ve satırları üzerinde yineleme yapın, her hücre değerini çalışma sayfasına yazın ve tam biçimlendirilmiş bir .xlsx dosyası üretmek için SaveAs çağırın -- Microsoft Office yüklemesi gerekmez.
Excel İhracatı için Windows Forms Projesi Nasıl Kurulur?
Windows Forms, masaüstü uygulamalar geliştirmek için yaygın olarak kullanılan .NET ekosisteminde temel bir GUI kütüphanesidir. En çok kullanılan bileşenlerinden biri olan DataGridView kontrolü, herhangi bir bağlanabilir kaynaktan (örneğin, DataTable, bir veritabanı sorgu sonucu veya bellekteki bir liste) gelen tabloları gösterir, düzenler ve yönetir.
Bu ızgaradaki verileri Excel'e aktarmak, paydaşlara rapor göndermek, denetim için anlık görüntüleri arşivlemek veya veri akışını analiz araçlarına beslemek gibi günlük ihtiyaçlara hizmet eder. İki geleneksel yaklaşım, Microsoft Ofis Interop ve üçüncü taraf kütüphanelerdir. Interop, uygulamayı çalıştıran her makinede bir Excel kopyası gerektirir, COM nesne yaşam döngüsü sorunları yaratır ve sunucu veya bulut dağıtımlarında kötü performans sergiler. IronXL, ClosedXML ve Syncfusion gibi kütüphaneler, Office bağımlılığı olmadan doğrudan Open XML dosya formatına yazarak bu sorunlardan kaçar.
Bu kılavuz, .NET 10'u hedefleyen C#'ta IronXL yaklaşımını gösterir, ancak IronXL .NET Framework 4.6.2 ve tüm modern .NET sürümlerini destekler.
Ön Koşullar
Herhangi bir ihracat kodu yazmadan önce, aşağıdakilerin sağlandığından emin olun:
- Visual Studio 2022 veya daha yenisi
- .NET 10 SDK yüklü
DataGridViewkontrolü içeren bir Windows Forms Uygulama projesi- IronXL yüklemek için NuGet erişimi
IronXL Nasıl Kurulur?
Visual Studio'da Paket Yöneticisi Konsolunu açın ve birini çalıştırın:
Install-Package IronXL.Excel
Alternatif olarak, Solution Explorer'da projeye sağ tıklayın, Manage NuGet Packages seçeneğini seçin, IronXL.Excel için arama yapın ve Install seçeneğine tıklayın.

Kurulumdan sonra, Excel işlevselliğini kullanan herhangi bir dosyanın üst kısmına IronXL kullanma yönergelerini ekleyin:
using IronXL;
using System.Data;
using IronXL;
using System.Data;
Imports IronXL
Imports System.Data
IronXL, her ortak elektronik tablo formatını destekler: XLSX, XLS, CSV ve TSV. Bu kılavuz, modern Excel sürümleri için varsayılan format olduğu için XLSX'i kullanmaktadır.
Örnek Veri ile DataGridView Nasıl Doldurulur?
Bu yürüme turu için, form, DataGridView1 adlı bir DataGridView ve btnExport adlı bir düğme içerir. Grid, formun Load olayında, bir DataTable'da saklanan çalışan kayıtlarıyla doldurulur:
void Form1_Load(object sender, EventArgs e)
{
var dt = new DataTable();
// Define columns with the appropriate .NET type
dt.Columns.Add("EmployeeID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Department", typeof(string));
dt.Columns.Add("Salary", typeof(decimal));
// Add sample rows
dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000m);
dt.Rows.Add(102, "Michael Chen", "Marketing", 72000m);
dt.Rows.Add(103, "Emily Davis", "Finance", 91000m);
dt.Rows.Add(104, "James Wilson", "Engineering", 78000m);
DataGridView1.DataSource = dt;
}
void Form1_Load(object sender, EventArgs e)
{
var dt = new DataTable();
// Define columns with the appropriate .NET type
dt.Columns.Add("EmployeeID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Department", typeof(string));
dt.Columns.Add("Salary", typeof(decimal));
// Add sample rows
dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000m);
dt.Rows.Add(102, "Michael Chen", "Marketing", 72000m);
dt.Rows.Add(103, "Emily Davis", "Finance", 91000m);
dt.Rows.Add(104, "James Wilson", "Engineering", 78000m);
DataGridView1.DataSource = dt;
}
Option Strict On
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As New DataTable()
' Define columns with the appropriate .NET type
dt.Columns.Add("EmployeeID", GetType(Integer))
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Department", GetType(String))
dt.Columns.Add("Salary", GetType(Decimal))
' Add sample rows
dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000D)
dt.Rows.Add(102, "Michael Chen", "Marketing", 72000D)
dt.Rows.Add(103, "Emily Davis", "Finance", 91000D)
dt.Rows.Add(104, "James Wilson", "Engineering", 78000D)
DataGridView1.DataSource = dt
End Sub
Her sütun, sayısal karşılaştırmaların ve biçimlendirmelerin daha sonra doğru çalışmasını sağlamak için belirli bir .NET türü ile tanımlanır. DataSource özelliği, DataTable'yu doğrudan DataGridView'ya bağlar ve form açıldığında grid otomatik olarak tüm satırları görüntüler. Üretimde, bu veriler tipik olarak bir veritabanı sorgusundan, bir ORM sonuç setinden veya sabit kodlanmış değerler yerine bir REST API yanıtından gelecektir.

DataGridView Veri Modelini Anlamak
Bir DataGridView içeriğini iki koleksiyon aracılığıyla sunar: Columns (metaveriler için HeaderText ve sütun indeksi gibi) ve Rows (gerçek veri hücreleri için). Her DataGridViewRow, sütun konumuna göre dizinlenen bir Cells koleksiyonu içerir. Her hücrenin Value özelliği, bir Excel hücresine yazmadan önce onu kastetmeniz veya dönüştürmeniz gereken kutulanmış bir nesneyi döndüren bir fonksiyon içerir. Bu hiyerarşiyi anlamak, güvenilir bir dışa aktarma döngüsü yazmak için esastır.
Perde arkasında DataTable türlendirilmiş değerleri depolar, bu nedenle ondalık bir maaş, IronXL çalışma sayfasına yazılmadan önce metin dönüşümüne ihtiyaç duymaz. IronXL'in SetCellValue yöntemi, çıktı dosyasında orijinal veri türünü korumanıza olanak tanıyan string, double, decimal, int, bool ve DateTime yüklerini kabul eder.
VeriGridView Verilerini Sütun Başlıkları ile Bir Excel Dosyasına Nasıl Aktarırsınız?
Dışa aktarma mantığı, düğmenin tıklama işleyicisinde yer alır. Kod, yeni bir WorkBook oluşturur, varsayılan çalışma sayfasını alır, sütun başlıklarını ilk satıra yazar, ardından her veri satırını bunların altına yazar:
void btnExport_Click(object sender, EventArgs e)
{
var workbook = WorkBook.Create();
var sheet = workbook.DefaultWorkSheet;
// Write column headers to row index 0
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
}
// Write data rows starting at row index 1
for (int row = 0; row < DataGridView1.Rows.Count; row++)
{
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
if (cellValue is not null)
{
sheet.SetCellValue(row + 1, col, cellValue.ToString()!);
}
}
}
string outputPath = "EmployeeData.xlsx";
workbook.SaveAs(outputPath);
MessageBox.Show("Export complete. File saved to: " + outputPath, "Success");
}
void btnExport_Click(object sender, EventArgs e)
{
var workbook = WorkBook.Create();
var sheet = workbook.DefaultWorkSheet;
// Write column headers to row index 0
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
}
// Write data rows starting at row index 1
for (int row = 0; row < DataGridView1.Rows.Count; row++)
{
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
if (cellValue is not null)
{
sheet.SetCellValue(row + 1, col, cellValue.ToString()!);
}
}
}
string outputPath = "EmployeeData.xlsx";
workbook.SaveAs(outputPath);
MessageBox.Show("Export complete. File saved to: " + outputPath, "Success");
}
Private Sub btnExport_Click(sender As Object, e As EventArgs)
Dim workbook = WorkBook.Create()
Dim sheet = workbook.DefaultWorkSheet
' Write column headers to row index 0
For col As Integer = 0 To DataGridView1.Columns.Count - 1
sheet.SetCellValue(0, col, DataGridView1.Columns(col).HeaderText)
Next
' Write data rows starting at row index 1
For row As Integer = 0 To DataGridView1.Rows.Count - 1
For col As Integer = 0 To DataGridView1.Columns.Count - 1
Dim cellValue As Object = DataGridView1.Rows(row).Cells(col).Value
If cellValue IsNot Nothing Then
sheet.SetCellValue(row + 1, col, cellValue.ToString())
End If
Next
Next
Dim outputPath As String = "EmployeeData.xlsx"
workbook.SaveAs(outputPath)
MessageBox.Show("Export complete. File saved to: " & outputPath, "Success")
End Sub
WorkBook nesnesi, bellekteki tüm Excel dosyasını temsil eder. DefaultWorkSheet, açıkça bir tane oluşturmanıza gerek kalmadan ilk sayfayı döndürür. Dış döngü, HeaderText'dan gelen başlık metnini sıfır satırına yazar. İç içe geçmiş döngü daha sonra her veri satırını ilerler ve dev.null olmadan önce hücre değerini bir diziye dönüştürür. row + 1 kayması, verileri başlık satırının altına taşır. SaveAs, tamamlanmış çalışma kitabını belirtilen yola bir Open XML XLSX dosyası olarak yazar.

Ortaya çıkan dosya, Excel, Google Sheets veya XLSX formatını okuyan herhangi bir uygulamada açılabilir. Sütun başlıkları ilk satırda görünür ve tüm veri satırları DataGridView'da göründükleri aynı sırayla takip eder.
Dışa Aktarılan Excel Dosyasına Hücre Formatlama Nasıl Uygulanır?
Düz veri transferi işlevsel olabilir ancak sunum için hazır değildir. IronXL'in stil API'si, sayı formatları, arkaplan renkleri, yazı tipi kalınlığı ve metin renklerini herhangi bir hücre aralığına uygulamanıza olanak tanır:
void ExportWithFormatting()
{
var workbook = WorkBook.Create();
var sheet = workbook.DefaultWorkSheet;
// Write column headers
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
}
// Style the header row: bold white text on blue background
var headerRange = sheet.GetRange("A1:D1");
headerRange.Style.Font.Bold = true;
headerRange.Style.SetBackgroundColor("#4472C4");
headerRange.Style.Font.SetColor("#FFFFFF");
// Locate the Salary column index
int salaryColIndex = -1;
for (int i = 0; i < DataGridView1.Columns.Count; i++)
{
if (string.Equals(DataGridView1.Columns[i].HeaderText, "Salary",
StringComparison.OrdinalIgnoreCase))
{
salaryColIndex = i;
break;
}
}
// Write data rows, preserving numeric types
for (int row = 0; row < DataGridView1.Rows.Count; row++)
{
if (DataGridView1.Rows[row].IsNewRow) continue;
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
if (cellValue is null) continue;
int targetRow = row + 1;
if (col == salaryColIndex)
{
// Write salary as a true numeric decimal
if (decimal.TryParse(cellValue.ToString(),
System.Globalization.NumberStyles.Number,
System.Globalization.CultureInfo.InvariantCulture,
out decimal decValue))
{
sheet.SetCellValue(targetRow, col, decValue);
}
else
{
sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
}
}
else
{
sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
}
}
}
// Apply currency format to the salary column data range
var salaryRange = sheet.GetRange("D2:D5");
salaryRange.FormatString = "$#,##0";
workbook.SaveAs("FormattedEmployeeData.xlsx");
}
void ExportWithFormatting()
{
var workbook = WorkBook.Create();
var sheet = workbook.DefaultWorkSheet;
// Write column headers
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
}
// Style the header row: bold white text on blue background
var headerRange = sheet.GetRange("A1:D1");
headerRange.Style.Font.Bold = true;
headerRange.Style.SetBackgroundColor("#4472C4");
headerRange.Style.Font.SetColor("#FFFFFF");
// Locate the Salary column index
int salaryColIndex = -1;
for (int i = 0; i < DataGridView1.Columns.Count; i++)
{
if (string.Equals(DataGridView1.Columns[i].HeaderText, "Salary",
StringComparison.OrdinalIgnoreCase))
{
salaryColIndex = i;
break;
}
}
// Write data rows, preserving numeric types
for (int row = 0; row < DataGridView1.Rows.Count; row++)
{
if (DataGridView1.Rows[row].IsNewRow) continue;
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
object? cellValue = DataGridView1.Rows[row].Cells[col].Value;
if (cellValue is null) continue;
int targetRow = row + 1;
if (col == salaryColIndex)
{
// Write salary as a true numeric decimal
if (decimal.TryParse(cellValue.ToString(),
System.Globalization.NumberStyles.Number,
System.Globalization.CultureInfo.InvariantCulture,
out decimal decValue))
{
sheet.SetCellValue(targetRow, col, decValue);
}
else
{
sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
}
}
else
{
sheet.SetCellValue(targetRow, col, cellValue.ToString()!);
}
}
}
// Apply currency format to the salary column data range
var salaryRange = sheet.GetRange("D2:D5");
salaryRange.FormatString = "$#,##0";
workbook.SaveAs("FormattedEmployeeData.xlsx");
}
Option Strict On
Sub ExportWithFormatting()
Dim workbook = WorkBook.Create()
Dim sheet = workbook.DefaultWorkSheet
' Write column headers
For col As Integer = 0 To DataGridView1.Columns.Count - 1
sheet.SetCellValue(0, col, DataGridView1.Columns(col).HeaderText)
Next
' Style the header row: bold white text on blue background
Dim headerRange = sheet.GetRange("A1:D1")
headerRange.Style.Font.Bold = True
headerRange.Style.SetBackgroundColor("#4472C4")
headerRange.Style.Font.SetColor("#FFFFFF")
' Locate the Salary column index
Dim salaryColIndex As Integer = -1
For i As Integer = 0 To DataGridView1.Columns.Count - 1
If String.Equals(DataGridView1.Columns(i).HeaderText, "Salary", StringComparison.OrdinalIgnoreCase) Then
salaryColIndex = i
Exit For
End If
Next
' Write data rows, preserving numeric types
For row As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Rows(row).IsNewRow Then Continue For
For col As Integer = 0 To DataGridView1.Columns.Count - 1
Dim cellValue As Object = DataGridView1.Rows(row).Cells(col).Value
If cellValue Is Nothing Then Continue For
Dim targetRow As Integer = row + 1
If col = salaryColIndex Then
' Write salary as a true numeric decimal
Dim decValue As Decimal
If Decimal.TryParse(cellValue.ToString(), Globalization.NumberStyles.Number, Globalization.CultureInfo.InvariantCulture, decValue) Then
sheet.SetCellValue(targetRow, col, decValue)
Else
sheet.SetCellValue(targetRow, col, cellValue.ToString())
End If
Else
sheet.SetCellValue(targetRow, col, cellValue.ToString())
End If
Next
Next
' Apply currency format to the salary column data range
Dim salaryRange = sheet.GetRange("D2:D5")
salaryRange.FormatString = "$#,##0"
workbook.SaveAs("FormattedEmployeeData.xlsx")
End Sub
GetRange yöntemi, bitişik bir hücre bloğunu seçmek için standart Excel notasyonunu (A1:D1) kabul eder. Style.Font.Bold, Style.SetBackgroundColor ve Style.Font.SetColor ayarlamak, seçilen aralıktaki her hücreye bu biçimleri uygular. Sayısal sütunlar için, değeri bir decimal olarak yazmak, veri türünü korur, bu da Excel'in $#,##0 gibi sayı biçimlendirmelerini doğru bir şekilde uygulayabilmesini sağlar. Dizi olarak depolanan hücreler sayısal format komutlarına yanıt vermez.

Bu kalıbı, satırların alternatif gölgelendirilmesini, sütun genişliği otomatik uyumunu veya pencere bölmesini dondurmayı uygulayacak şekilde genişletebilirsiniz. Daha fazla bilgi için IronXL biçimlendirme dökümantasyonuna bakın.
DataGridView Verilerini XLSX Yerine CSV Olarak Nasıl Aktarırsınız?
Bazı iş akışları, eski sistemlerle veya hafif veri boru hatlarıyla uyumluk için CSV çıktısını gerektirir. IronXL, ana koda ek bir yapılandırma değişikliği yapmadan CSV dışa aktarımını ele alır:
void ExportToCsv()
{
var workbook = WorkBook.Create();
var sheet = workbook.DefaultWorkSheet;
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
}
for (int row = 0; row < DataGridView1.Rows.Count; row++)
{
if (DataGridView1.Rows[row].IsNewRow) continue;
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
object? cell = DataGridView1.Rows[row].Cells[col].Value;
if (cell is not null)
sheet.SetCellValue(row + 1, col, cell.ToString()!);
}
}
// Saving with a .csv extension produces a comma-separated file
workbook.SaveAs("EmployeeData.csv");
}
void ExportToCsv()
{
var workbook = WorkBook.Create();
var sheet = workbook.DefaultWorkSheet;
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText);
}
for (int row = 0; row < DataGridView1.Rows.Count; row++)
{
if (DataGridView1.Rows[row].IsNewRow) continue;
for (int col = 0; col < DataGridView1.Columns.Count; col++)
{
object? cell = DataGridView1.Rows[row].Cells[col].Value;
if (cell is not null)
sheet.SetCellValue(row + 1, col, cell.ToString()!);
}
}
// Saving with a .csv extension produces a comma-separated file
workbook.SaveAs("EmployeeData.csv");
}
Sub ExportToCsv()
Dim workbook = WorkBook.Create()
Dim sheet = workbook.DefaultWorkSheet
For col As Integer = 0 To DataGridView1.Columns.Count - 1
sheet.SetCellValue(0, col, DataGridView1.Columns(col).HeaderText)
Next
For row As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Rows(row).IsNewRow Then Continue For
For col As Integer = 0 To DataGridView1.Columns.Count - 1
Dim cell As Object = DataGridView1.Rows(row).Cells(col).Value
If cell IsNot Nothing Then
sheet.SetCellValue(row + 1, col, cell.ToString())
End If
Next
Next
' Saving with a .csv extension produces a comma-separated file
workbook.SaveAs("EmployeeData.csv")
End Sub
XLSX dışa aktarımından tek fark SaveAs'ya geçirilen dosya uzantısıdır. IronXL bu uzantıyı algılar ve kitabı doğru formatta otomatik olarak serileştirir. Bu tutarlılık, çıkış formatından bağımsız olarak veri yazma mantığınızın aynı kalmasını sağlar - her format için ayrı kod yolları gerektiren kütüphanelere göre önemli bir avantajdır.
CSV dışa aktarım, veri akışına dikkat etmeyen Python pandas scripti, veritabanı toplu aktarma aracı veya ikili XLSX dosyalarını okuyamayan bir analiz platformu gibi tüketiciler için özellikle kullanışlıdır.
Büyük DataGridView Verisetleri Verimli Bir Şekilde Nasıl Yönetilir?
On binlerce satır içeren ızgaralar için, performans bir dikkat noktası haline gelir. Aşağıdaki desen, tam veri kümesinin tek bir geçişte oluşturularak bellek sıkışıklığını azaltır:
| Yaklaşım | İşlenen Satırlar | Office gerekli | Tür koruma |
|---|---|---|---|
| Microsoft.Office.Interop.Excel | ~65 bine kadar (yavaş) | Evet | Kısmi |
| IronXL (dize hücreleri) | 1M+ satır | Hayır | Hayır (tüm metin) |
| IronXL (türlendirilmiş hücreler) | 1M+ satır | Hayır | Evet |
| DataTable'dan IronXL | 1M+ satır | Hayır | Evet (otomatik) |
DataGridView bir DataTable'ya bağlı olduğunda, tabloyu hücre hücre yinelemeyi tamamen atlayarak WorkSheet.LoadDataTable yöntemi kullanarak doğrudan IronXL'e yükleyebilirsiniz. Bu yaklaşım daha hızlıdır ve tüm sütun türlerini otomatik olarak korur.
Bir DataTable tarafından desteklenmeyen gridler için, daha önce gösterilen hücre-hücre desen, standart yaklaşım olarak kalır. Büyük dışa aktarımlar sırasında UI'nin duyarlı kalmasını sağlamak için eşzamanlı olarak dışa aktarmanız gerekiyorsa, dışa aktarım mantığını Task.Run çağrısına sarın ve sonucu arka plan iş parçacığında await yoluyla çalıştırın. Sonuçları UI iş parçacığına geri aktarma kalıpları için asenkron dosya işlemleri belgelerini inceleyin.
DataGridView Dışa Aktarma İçin IronXL Neden Ofis Interop'tan Daha İyi?
Geleneksel .NET çözümleri, çalışan bir Excel sürecini sürdürmek için Microsoft.Office.Interop.Excel kullanırdı. Bu yaklaşım birkaç dağıtım ve güvenilirlik problemi yaratmaktadır:
- Uygulamayı çalıştıran her makinede lisanslı bir Microsoft Excel kopyasının kurulu olması gereklidir
- Sunucu ortamları ve bulut konteynerleri genellikle Office'i yükleyemez
- COM Interop, her nesnenin açıkça serbest bırakılmasını gerektirir, aksi takdirde bellek sızıntıları ve zombi Excel işlemleri oluşabilir
- COM sınırı boyunca hata yönetimi uzun ve kırılgandır
- Satır sayısı arttıkça performans hızlı bir şekilde bozulur
IronXL, herhangi bir harici süreci başlatmadan doğrudan OOXML dosya formatına yazar. Uygulamalar bağımsız birimler olarak dağıtılır. Kütüphanenin API'si tamamen yönetilen .NET'tir, bu nedenle çöp toplama, Marshal.ReleaseComObject çağrılarına gerek kalmadan belleği otomatik olarak yönetir. Hız, herhangi bir süreçler arası iletişim olmadığından önemli ölçüde daha yüksektir.
Alternatifleri değerlendiren ekipler için ClosedXML popüler bir açık kaynak seçeneğidir. IronXL, PDF dönüştürme, çizelge oluşturma ve ticari destek gibi daha geniş bir özellik yelpazesi sunar, bu da kurumsal satın alma kararlarında etkili olabilir. Ekibinizin boyutuna ve dağıtım senaryonuza uygun IronXL lisans seçeneklerini inceleyin.
| Özellik | IronXL | Ofis Interop |
|---|---|---|
| Ofis yüklemesi gereklidir | Hayır | Evet |
| Sunucu / bulut dağıtımı | Evet | Hayır (desteklenmiyor) |
| Yönetilen bellek modeli | Evet | Hayır (COM temizliği gereklidir) |
| XLSX / CSV / XLS formatları | Üçünün de | Kurulu Excel'e bağlı |
| Elektronik tablodan PDF dışa aktarma | Evet | Ek kütüphane gerektirir |
IronXL eğitim bölümü mevcut Excel dosyalarını okuma, şablonları değiştirme, grafikler oluşturma ve koşullu biçimlendirme uygulama konularını kapsar, bu da burada gösterilen DataGridView dışa aktarma deseninden doğal olarak genişleyen tüm yeteneklerdir.
Sonraki Adımlarınız Neler?
Artık, IronXL kullanarak bir DataGridView'yi biçimlendirilmiş bir Excel dosyasına aktarmak için çalışan bir C# koduna sahipsiniz. Buradan itibaren, aşağıdaki yönleri düşünün:
- Hata yönetimi ekleyin: Dışa aktarma kodunu bir
try/catchbloğuna ekleyin ve dosya kilitliyse veya yol geçersizse kullanıcı dostu bir mesaj gösterin. - Dosya yolu seçimini destekleyin: Kullanıcılara çalışma zamanında çıktı konumunu ve dosya adını seçme izni vermek için
SaveFileDialogkullanın. - Gerçek veriyi yükleyin: Örnek
DataTable'yı veri tabanı sorgusuyla ADO.NET veya Entity Framework kullanarak değiştirin. - Mevcut dosyaları okuyun: Her zaman yeni bir dosya oluşturmak yerine mevcut bir elektronik tabloyu açmak ve güncellemek için WorkBook.Load kullanın
- Çoklu sayfalara dışa aktarın: Aynı
WorkBookiçinde ilaveWorkSheetnesneleri oluşturarak ilişkili veri kümelerini düzenleyin. - Koşullu biçimlendirme uygulayın: IronXL'nin koşullu biçimlendirme API'sini kullanarak eşik değerlerini aşan hücreleri vurgulayın
- Lisans seçeneklerini gözden geçirin: Bir ücretsiz deneme mevcuttur; lisanslama katmanları bireysel geliştiricilerden kurumsal dağıtımlara kadar kapsamaktadır
- Tüm API referansını gözden geçirin: IronXL nesne referansı mevcut olan her sınıf ve yöntemi belgeler
Sıkça Sorulan Sorular
C#'ta DataGridView verilerini Excel'e dışa aktarmanın en kolay yolu nedir?
IronXL kullanarak, DataGridView verilerini C#'ta kısa bir döngüyle Excel'e dışa aktarabilirsiniz; bu döngü sütun başlıklarını ve veri satırlarını bir WorkBook nesnesine yazar ve ardından bir XLSX dosyası üretmek için SaveAs'ı çağırır. Microsoft Office kurulumu gerekmez.
C# Windows Forms uygulamasında IronXL'i kullanarak Excel dosyalarını nasıl işlersiniz?
NuGet aracılığıyla IronXL yükleyin, using IronXL yönergesi ekleyin, WorkBook.Create() ile bir Çalışma Kitabı oluşturun, SetCellValue kullanarak veri yazın ve SaveAs ile kaydedin. IronXL, XLSX, XLS ve CSV formatlarını destekler.
IronXL, büyük DataGridView veri setlerini Excel'e dışa aktarmayı destekliyor mu?
Evet, IronXL, büyük veri setlerini etkili bir şekilde işler. Bir DataTable tarafından desteklenen DataGridViewler için hücre bazlı yinelemeyi atlamak ve performansı daha da artırmak için LoadDataTable yöntemini kullanabilirsiniz.
IronXL'i kullanmak için Microsoft Excel kurulu mu olmalı?
Hayır. IronXL, Open XML dosya formatına doğrudan yazar ve Excel veya herhangi bir COM otomasyonunu başlatmaz. IronXL ile oluşturulan uygulamalar, Office'in bulunmadığı sunucu ve bulut ortamlarına dağıtılır.
Excel dışa aktarımlarında IronXL kullanmanın Office Interop'a göre faydaları nelerdir?
IronXL, Office kurulumu gerektirmez, COM bellek sızıntısı sorunlarını önler, sunucu ve bulut dağıtımını destekler ve XLSX, XLS ve CSV dosyaları okuma ve yazma için temiz bir yönetilen .NET API sağlar.
IronXL, DataGridView verilerini CSV ve XLSX'e de dışa aktarabilir mi?
Evet. WorkBook.SaveAs'a bir .csv dosya yolu geçirildiğinde, virgülle ayrılmış bir dosya üretilir. Veri yazma kodu her iki format için de aynıdır - yalnızca dosya uzantısı değişir.
IronXL ile dışa aktarılan Excel hücrelerine nasıl biçimlendirme uygularsınız?
Bir hücre aralığını seçmek için WorkSheet.GetRange'ı kullanın, ardından Stil özelliğine erişerek Font.Bold, SetBackgroundColor, Font.SetColor ve sayı formatları için FormatString değerlerini ayarlayın.
C# projesinde IronXL kullanmaya nasıl başlarsınız?
Projenizde Install-Package IronXL veya dotnet add package IronXL çalıştırın, dosyanızın başında using IronXL ekleyin ve ironsoftware.com/csharp/excel/adresindeki IronXL belgelerindeki örnekleri izleyin.




