IronXL ile C#'da DataGridView'i Excel'e nasıl aktaracağınızı öğrenin.
Bir DataGridView'den Excel dosyasına veri aktarmak, IronXL kullandığınızda sadece birkaç satır C# kodu gerektirir. Bir WorkBook oluşturun, gridin sütunları ve satırları arasında gezin, her hücre değerini çalışma sayfasına yazın, ardından tamamen biçimlendirilmiş bir .xlsx dosyası üretmek için SaveAs çağırın -- Microsoft Office kurulumu gerekmez.
Excel Dışa Aktarımı için Windows Forms Projesi Nasıl Kurulmalıdır?
Windows Forms, masaüstü uygulamaları oluşturmak için yaygın olarak kullanılan .NET ekosisteminde bir temel GUI kutuphanesidir. DataGridView kontrolü, en çok kullanılan bileşenlerinden biridir: bir DataTable, bir veritabanı sorgu sonucu veya bir bellek içi listesi gibi herhangi bağlanabilir bir kaynaktan gelen tablo verilerini görüntüler, düzenler ve yönetir.
Izgara verilerini Excel'e dışa aktarma, raporları paydaşlara gönderme, denetim için anlık görüntüleri arşivleme veya veri akışını akış analitik araçlarına beslemeye yönelik günlük ihtiyaçlara hizmet eder. İki geleneksel yaklaşım Microsoft Office Interop ve üçüncü taraf kutuphanelerdir. Interop, uygulamayı çalıştıran her makinede kurulu bir Excel kopyası gerektirir, COM nesne yaşam döngüsü sorunları oluşturur ve sunucu veya bulut dağıtımlarında zayıf performans gösterir. IronXL, ClosedXML ve Syncfusion gibi kutuphaneler bu sorunları, Office bağımlılığı olmadan doğrudan Open XML dosya formatına yazarak önler.
Bu kılavuz, .NET 10'a yönelik C#'ta IronXL yaklaşımını gösterir, ancak IronXL .NET Framework 4.6.2 ve tüm modern .NET sürümlerini destekler.
Önkoşullar
Herhangi bir dışa aktarma kodu yazmadan önce, şu unsurların yerinde olduğundan emin olun:
- Visual Studio 2022 veya daha yenisi
- .NET 10 SDK yüklü
DataGridViewkontrolü içeren bir Windows Forms App projesi- IronXL'i kurmak için NuGet erişimi
IronXL Nasıl Kurulur?
Visual Studio'da Paket Yöneticisi Konsolunu açın ve ya bu komutu çalıştırın:
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
Alternatif olarak, Solution Explorer'da projeye sağ tıklayın, Manage NuGet Packages seçeneğini seçin, IronXl.Excel aratın ve Install tuşuna tıklayın.

Yüklendikten sonra, Excel işlevselliği kullanılan herhangi bir dosyanın en üstüne IronXL using direktifini ekleyin:
using IronXL;
using System.Data;
using IronXL;
using System.Data;
Imports IronXL
Imports System.Data
IronXL, her yaygın hesap tablosu formatını destekler: XLSX, XLS, CSV ve TSV. Bu kılavuz boyunca, modern Excel sürümleri için varsayılan format olan XLSX kullanılmaktadır.
Örnek Verilerle DataGridView Nasıl Doldurulur?
Bu yürüyüş için, formda DataGridView adında bir DataGridView1 ve btnExport adında bir buton bulunmaktadır. Grid, formun Load olayında bir DataTable'da depolanan çalışan kayıtları ile 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 formatlamanın daha sonra doğru şekilde çalışması için belirli bir .NET türü ile tanımlanmıştır. DataSource özelliği DataTable'i doğrudan DataGridView ile bağlar ve form açıldığında grid otomatik olarak tüm satırları render eder. Üretimde, bu veriler genellikle sert kodlanmış değerler yerine bir veritabanı sorgusundan, bir ORM sonuç kümesinden veya bir REST API yanıtından gelir.

DataGridView Veri Modelini Anlama
Bir DataGridView içeriğini iki koleksiyon aracılığıyla sunar: Columns (HeaderText ve sütun indeksi gibi metaveri için) ve Rows (gerçek veri hücreleri için). Her DataGridViewRow, sütun konumuna göre dizinlenmiş bir Cells koleksiyonu içerir. Her hücrenin Value özelliği, Excel hücresine yazılmadan önce dönüştürmeniz veya cast etmeniz gereken kutulanmış bir nesne döndürür. Bu hiyerarşiyi anlamak, güvenilir bir dışa aktarma döngüsü yazmak için çok önemlidir.
Sahnelerin arkasında DataTable yazılı değerleri depolar, bu nedenle ondalık maaş, bir IronXL çalışma sayfasına yazılmadan önce string dönüştürmeye ihtiyaç duymaz. IronXL'nin SetCellValue metodu string, double, decimal, int, bool ve DateTime overloadlarını kabul eder, bu da çıktı dosyasında orijinal veri türünü korumanıza olanak tanır.
Sütun Başlıkları ile Excel Dosyasına DataGridView Verileri Nasıl Dışa Aktarılır?
Dışa aktarma mantığı, butonun 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 ve 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 bellekte, tüm Excel dosyasını temsil eder. DefaultWorkSheet, açıkça yaratmanıza gerek kalmadan ilk sayfayı döndürür. Dış döngü, HeaderText'den satır sıfıra başlık metni yazar. İç içe döngü, her veri satırını yineleyerek, hücre değerini bir dizeye dönüştürmeden önce null olup olmadığını kontrol eder. row + 1 offset, verileri başlık satırının altına kaydırı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çılır. Sütun başlıkları ilk satırda görünür ve tüm veri satırları, DataGridView'de göründükleri sırayla devam eder.
Dışa Aktarılan Excel Dosyasına Hücre Biçimlendirmesi Nasıl Uygulanır?
Basit bir veri dökümü işlevsel olsa da sunum için hazır değildir. IronXL'nin stil API'si, kaydetmeden önce herhangi bir hücre aralığı için kalın fontlar, arka plan renkleri, metin renkleri ve sayı formatları uygulamanıza izin verir:
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 metodu, 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 formatları uygular. Sayısal sütunlar için değeri bir decimal olarak yazmak, veri türünü sabit tutar, bu da Excel'in $#,##0 gibi sayı formatlarını doğru şekilde uygulayabileceği anlamına gelir. Dize olarak depolanan hücreler, sayı formatı kodlarına yanıt vermez.

IronXL stil dokümantasyonunua danışarak bu deseni değişken satır gölgeleri, sütun genişliği otomatik uyarlaması veya pano dondurma uygulamak için genişletebilirsiniz.
DataGridView Verilerini XLSX Yerine CSV Olarak Nasıl Dışa Aktarırsınız?
Bazı iş akışları, eski sistemlerle veya hafif veri hatlarıyla uyumluluk için CSV çıktısı gerektirir. IronXL, ana koda ek bir yapılandırma değişikliği gerektirmeden CSV dışa aktarması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 ihracatından yapılan tek değişiklik, SaveAs'e geçirilen dosya uzantısıdır. IronXL, uzantıyı algılar ve çalışma kitabını doğru formatta otomatik olarak serileştirir. Bu tutarlılık, veri yazma mantığınızın çıktı formatından bağımsız olarak aynı kalmasını sağlar -- her format için ayrı kod yolları gerektiren kütüphanelerle kıyaslandığında önemli bir avantajdır.
CSV dışa aktarma, aşağı akış tüketicisi bir Python pandas scripti, bir veritabanı toplu aktarma aracı veya ikili XLSX dosyalarını okuyamayan bir analitik platform olduğunda özellikle faydalıdır.
Büyük DataGridView Veri Kümelerini Etkili Şekilde Nasıl Ele Alırsınız?
On binlerce satır içeren tablolar için performans önemli bir konu haline gelir. Aşağıdaki desen, verinin tamamını tek geçişte oluşturarak bellek yükünü azaltır:
| Yaklaşım | İşlenen satırlar | Ofis gerekti | Tür korunumu |
|---|---|---|---|
| Microsoft.Office.Interop.Excel | Yaklaşık ~65 bin'e kadar (yavaş) | Evet | Kısmi |
| IronXL (dize hücreler) | 1M+ satırlar | Hayır | Hayır (tüm metin) |
| IronXL (tipli hücreler) | 1M+ satırlar | Hayır | Evet |
| IronXL'den DataTable | 1M+ satırlar | Hayır | Evet (otomatik) |
DataGridView bir DataTable ile bağlı olduğunda, tabloyu hücre hücre yineleme yapmadan WorkSheet.LoadDataTable metodunu kullanarak doğrudan IronXL'ye yükleyebilirsiniz. Bu yaklaşım daha hızlıdır ve tüm sütun türlerini otomatik olarak korur.
DataTable ile desteklenmeyen gridler için daha önce gösterilen hücre-hücre deseni standart yaklaşım olmaya devam eder. UI'nin büyük ihracatlar sırasında yanıt vermesi için asenkron olarak dışa aktarmanız gerekirse, dışa aktarma mantığını bir Task.Run çağrısına sarın ve sonucu arka plan iş parçacığında await. Sonuçları UI iş parçacığına geri yönlendirmek için örüntüler hakkında asenkron dosya işlemleri dokümantasyonuna bakın.
VeriGridView Dışa Aktarımı için IronXL Neden Office Interop'tan Daha İyi?
Geleneksel .NET çözümleri, çalışan bir Excel sürecini yönlendirmek için Microsoft.Office.Interop.Excel kullanırdı. Bu yaklaşım, birkaç dağıtım ve güvenilirlik problemi oluşturur:
- Uygulamayı çalıştıran her makinede Microsoft Excel'un lisanslı bir kopyasının yüklü olması gerekir
- Sunucu ortamları ve bulut konteynerları genellikle Office yükleyemezler
- COM Interop, bellek sızıntıları ve zombi Excel süreçlerinden kaçınmak için her nesnenin açık bir şekilde serbest bırakılmasını gerektirir
- COM sınırı boyunca hata yönetimi detaylı ve hassastır
- Satır sayısı arttıkça performans hızla düşer
IronXL, herhangi bir harici işlemi başlatmadan OOXML dosya formatına doğrudan yazar. Uygulamalar kendi kendine yeterli birimler olarak dağıtılır. Kütüphanenin API'si tamamen yönetilen .NET'tir, bu nedenle çöp toplama, bellek yönetimini Marshal.ReleaseComObject çağrıları olmadan otomatik olarak halleder. Hiçbir süreçler arası iletişim gerçekleşmediği için hız önemli ölçüde daha yüksektir.
Alternatifleri değerlendiren takımlar için ClosedXML popüler bir açık kaynak seçeneğidir. IronXL, PDF dönüşümü, grafik oluşturma ve ticari destek gibi daha geniş bir özellik seti sunar, bu da kurumsal tedarik kararlarında etkili olabilir. IronXL lisanslama seçeneklerini gözden geçirerek takım büyüklüğünüze ve dağıtım senaryonuza uygun doğru katmanı eşleştirin.
| Özellik | IronXL | Office Interop |
|---|---|---|
| Office kurulumu gereklidir | Hayır | Evet |
| Sunucu / bulut dağıtımı | Evet | Hayır (desteklenmez) |
| Yönetilen bellek modeli | Evet | Hayır (COM temizliği gereklidir) |
| XLSX / CSV / XLS formatları | Üçü de | Yüklenen Excel'e bağlı |
| E-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, grafik oluşturma ve koşullu biçimlendirme uygulama gibi burada gösterilen DataGridView dışa aktarma modelinden doğal olarak genişleyen tüm yetenekleri kapsamaktadır.
Sıradaki Adımlarınız Neler?
Artık IronXL kullanarak bir DataGridView'yi biçimlendirilmiş bir Excel dosyasına aktarmak için çalışan C# koduna sahipsiniz. Buradan, aşağıdaki yönleri dikkate alın:
- Hata yönetimi ekle: Dışa aktarma kodunu bir
try/catchbloğuna sarın ve dosya kilitli veya yol geçersiz ise kullanıcı dostu bir mesaj gösterin - Dosya yolu seçimini destekle: Kullanıcıların çalışma zamanı sırasında çıktı konumunu ve dosya adını seçmesine izin vermek için
SaveFileDialogkullanın - Gerçek veri yükle: Örnek
DataTable'yı ADO.NET veya Entity Framework kullanarak bir veritabanı sorgusu ile değiştirin - Mevcut dosyaları okuyun: Her zaman yeni bir doğrudan yerine mevcut bir e-tabloyu açmak ve güncellemek için WorkBook.Load kullanın
- Birden fazla sayfaya dışa aktar: İlgili veri setlerini düzenlemek için aynı
WorkBookiçinde ekWorkSheetnesneleri oluşturun - Koşullu biçimlendirme uygulayın: IronXL'nin koşullu biçimlendirme API'sini kullanarak eşikleri aşan hücreleri vurgulayın
- Lisans seçeneklerini gözden geçirin: ücretsiz bir deneme mevcuttur; lisans katmanları, bireysel geliştiricilerden kurumsal dağıtımlara kadar kapsama alanı sunar
- Tam API referansına göz atın: IronXL nesne referansı mevcut her sınıfı ve yöntemi dokümante eder
Sıkça Sorulan Sorular
C# ile DataGridView verilerini Excel'e aktarmanın en kolay yolu nedir?
IronXL kullanarak, DataGridView verilerini C# ile Excel'e aktarmak için bir WorkBook nesnesine sütun başlıkları ve veri satırları yazan kısa bir döngü kullanabilir, ardından XLSX dosyası oluşturmak için SaveAs'i çağırabilirsiniz. Microsoft Office kurulumu gerektirmez.
IronXL'ü C# Windows Forms uygulamasında Excel dosyalarını işlemek için nasıl kullanırsınız?
IronXL'u NuGet üzerinden yükleyin, using IronXL yönergesini ekleyin, WorkBook.Create() ile bir WorkBook oluşturun, SetCellValue kullanarak verileri yazın ve SaveAs ile kaydedin. IronXL, XLSX, XLS ve CSV formatlarını destekler.
IronXL, büyük DataGridView veri kümelerini Excel'e aktarmayı destekliyor mu?
Evet, IronXL büyük veri kümeleriyle verimli şekilde çalışır. Bir DataTable tarafından desteklenen DataGridView'ler için, performansı daha da arttırmak için hücre hücre iterasyonunu atlayan LoadDataTable yöntemini kullanabilirsiniz.
IronXL kullanmak için Microsoft Excel'e ihtiyaçınız var mı?
Hayır. IronXL, Excel veya herhangi bir COM otomasyonu başlatmadan doğrudan Open XML dosya formatına yazar. IronXL ile oluşturulan uygulamalar Office'in mevcut olmadığı sunuculara ve bulut ortamlarına dağıtılır.
IronXL ile Excel aktarımlarında Office Interop'a göre ne gibi avantajlar vardır?
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ını okumak ve yazmak için kapsamlı bir .NET API sağlar.
IronXL, DataGridView verilerini CSV olarak da XLSX olarak da aktarabilir mi?
Evet. WorkBook.SaveAs'e bir .csv dosya yolu geçirildiğinde virgül ile ayrılmış bir dosya üretilir. Veri yazma kodu her iki format için de aynıdır - sadece dosya uzantısı değişir.
IronXL ile aktarılan Excel hücrelerine formatlamayı nasıl uyguluyorsunuz?
Bir hücre aralığı seçmek için WorkSheet.GetRange kullanın, sonra Font.Bold, SetBackgroundColor, Font.SetColor ve sayı formatları için FormatString ayarlamak için Style özelliğine erişin.
C# projesinde IronXL kullanmaya nasıl başlıyorsunuz?
Projenizde Install-Package IronXL veya dotnet add package IronXL komutunu çalıştırın, dosyanızın üstüne using IronXL ekleyin ve ironsoftware.com/csharp/excel adresindeki IronXL belgesindeki örnekleri takip edin.




