C# Kullanarak GridView'den Excele Nasıl Aktarılır
ASP.NET web uygulamalarında gerçek bir Excel dosyasına GridView verisini dışa aktarmak en yaygın gereksinimlerden biridir. Geleneksel yaklaşımlar, HtmlTextWriter ve StringWriter kullanarak sahte Excel dosyaları oluşturur, bu da kullanıcılar bunları açmaya çalıştığında tarayıcı uyarılarını ve biçim hatalarını tetikler. Bu kılavuz, geliştiricilerin eski yöntemlerle karşılaştığı sorunları ortadan kaldırarak, IronXL kullanarak GridView verilerini düzgün formatlanmış .xlsx dosyalarına nasıl aktaracağınızı gösterir.
Geleneksel GridView Dışa Aktarım Yaklaşımı Neden Sorunlara Yol Açıyor?
ASP.NET C#'da GridView'den Excel'e aktarma için klasik yöntem, HTML'nin işlenmesi ve Response başlıklarının Content-Disposition ek dosya adı değerleri ile ayarlanmasını içerir. Bu yaklaşım, çalışma zamanı hatalarını önlemek için public override void VerifyRenderingInServerForm'nın geçersiz kılınmasını gerektirir. Ortaya çıkan dosya gerçek bir Excel dosyası değildir -- bir .xls uzantısı ile kılık değiştiren HTML olup, kullanıcılar açtığında Excel'in uyarı mesajları göstermesine neden olur.
Özellikle, geleneksel teknik şu dezavantajlara sahiptir:
- Excel her açılışta "Dosya formatı ve uzantı uyuşmuyor" uyarısı gösterir
- Veriler hammade HTML olarak saklandığı için biçimlendirme ve veri türleri kaybolur
- Projenize teknik borç ekleyerek bir geçici çözüm olarak
VerifyRenderingInServerFormuygulamanız gerekir - Elde edilen dosya, uygun hücre meta verilerine sahip olmadan, daha aşağıda otomasyon veya raporlama araçları için kullanılamaz
IronXL, sunucuda Microsoft Office yüklemesi gerektirmeden gerçek .xlsx Excel dosyaları oluşturarak bu sorunları çözer. Herhangi bir elektronik tablo uygulamasının temiz bir şekilde açabileceği, uygun veri türlerini, stili ve OOXML yapısını koruyan bir dosya alırsınız.
IronXL Asp.Net Projenize Nasıl Eklenir?
Herhangi bir dışa aktarma mantığını yazmadan önce, IronXL'i NuGet Paket Yöneticisi'ni kullanarak projenize ekleyin. Visual Studio'da Paket Yöneticisi Konsolunu açın ve şu komutu çalıştırın:
Install-Package IronXL.Excel
Alternatif olarak, NuGet Paket Yöneticisi UI'sında IronXL.Excel arayın ve oradan yükleyin. Yüklendikten sonra, herhangi bir kod arkası dosyada IronXL ad alanına başvurabilirsiniz.
IronXL, .NET Standard 2.0 ve üstünü hedeflediği için, modern ASP.NET Core projeleri ve klasik ASP.NET Framework uygulamaları ile çalışır. Web sunucunuzda COM interop, Office kurulumu veya ek yerel bağımlılıklar gerekmez.
Detaylar için IronXL kurulum kılavuzuna ve IronXL NuGet paket sayfasına bakınız.
ASP.NET GridView'i Dışa Aktarım için Nasıl Kurarsınız?
Default.aspx sayfanızı bir GridView kontrolü ve bir dışa aktarma düğmesi ile oluşturun. İşaretleme standart Web Forms yapısındadır:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="GridViewExportTest.Default" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Export GridView to Excel</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>IronXL GridView Export Demo</h2>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"
HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" CellPadding="5">
</asp:GridView>
<br />
<asp:Button ID="btnExport" runat="server" Text="Export to Excel (.xlsx)"
OnClick="btnExport_Click" />
</div>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="GridViewExportTest.Default" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Export GridView to Excel</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>IronXL GridView Export Demo</h2>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"
HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" CellPadding="5">
</asp:GridView>
<br />
<asp:Button ID="btnExport" runat="server" Text="Export to Excel (.xlsx)"
OnClick="btnExport_Click" />
</div>
</form>
</body>
</html>
Bu işaretleme, bağlanmış bir GridView ve dışa aktarmayı tetikleyen bir düğme ile basit bir sayfa oluşturur. AutoGenerateColumns="true" özelliği, ızgaranın sütun adlarını doğrudan bağlanmış DataTable'dan okuduğu anlamına gelir.
GridView'e Örnek Verileri Bağlama
Kod arkanızda bir DataTable'ı ızgaraya bağlayın ve bir dışa aktarma geri gönderimi sırasında daha sonra kullanmak için Session içinde saklayın:
using System;
using System.Data;
using System.Web.UI;
using IronXL;
namespace GridViewExport
{
public partial class Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridView();
}
}
private void BindGridView()
{
DataTable dt = new DataTable("Employees");
dt.Columns.Add("EmployeeID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Department", typeof(string));
dt.Columns.Add("Salary", typeof(decimal));
dt.Rows.Add(1, "John Smith", "Engineering", 75000);
dt.Rows.Add(2, "Sarah Johnson", "Marketing", 65000);
dt.Rows.Add(3, "Mike Wilson", "Sales", 70000);
dt.Rows.Add(4, "Emily Davis", "Engineering", 80000);
GridView1.DataSource = dt;
GridView1.DataBind();
// Store DataTable in Session for export postback
Session["GridData"] = dt;
}
}
}
using System;
using System.Data;
using System.Web.UI;
using IronXL;
namespace GridViewExport
{
public partial class Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridView();
}
}
private void BindGridView()
{
DataTable dt = new DataTable("Employees");
dt.Columns.Add("EmployeeID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Department", typeof(string));
dt.Columns.Add("Salary", typeof(decimal));
dt.Rows.Add(1, "John Smith", "Engineering", 75000);
dt.Rows.Add(2, "Sarah Johnson", "Marketing", 65000);
dt.Rows.Add(3, "Mike Wilson", "Sales", 70000);
dt.Rows.Add(4, "Emily Davis", "Engineering", 80000);
GridView1.DataSource = dt;
GridView1.DataBind();
// Store DataTable in Session for export postback
Session["GridData"] = dt;
}
}
}
Imports System
Imports System.Data
Imports System.Web.UI
Imports IronXL
Namespace GridViewExport
Partial Public Class [Default]
Inherits Page
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
BindGridView()
End If
End Sub
Private Sub BindGridView()
Dim dt As New DataTable("Employees")
dt.Columns.Add("EmployeeID", GetType(Integer))
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Department", GetType(String))
dt.Columns.Add("Salary", GetType(Decimal))
dt.Rows.Add(1, "John Smith", "Engineering", 75000)
dt.Rows.Add(2, "Sarah Johnson", "Marketing", 65000)
dt.Rows.Add(3, "Mike Wilson", "Sales", 70000)
dt.Rows.Add(4, "Emily Davis", "Engineering", 80000)
GridView1.DataSource = dt
GridView1.DataBind()
' Store DataTable in Session for export postback
Session("GridData") = dt
End Sub
End Class
End Namespace
DataTable'ı Session içerisinde saklamak, dışa aktarma düğmesinin tetiklediği geri gönderim sırasında veritabanını yeniden sorgulamaktan veya veriyi yeniden oluşturmaktan kaçınır. Gerçek uygulamalar için sabit satırlar yerine, bir Entity Framework veya ADO.NET kullanarak veritabanı sorgusu koyun.

IronXL Kullanarak GridView Verilerini Excel'e Nasıl Aktarırsınız?
GridView dışa aktarma için temizlik yaklaşımı, DataTable'ınızı bir IronXL WorkBook'ına dönüştürür ve sonucu doğrudan tarayıcıya akıtır. İşte tam dışa aktarma yöntemi:
protected void btnExport_Click(object sender, EventArgs e)
{
ExportGridViewToExcel();
}
private void ExportGridViewToExcel()
{
DataTable dt = (DataTable)Session["GridData"];
// Create a workbook and load data from the DataTable
WorkBook workbook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }, workbook);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Apply header row formatting
var headerRange = worksheet["A1:D1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.Font.Size = 12;
headerRange.Style.SetBackgroundColor("#3AC0F2");
// Stream the file to the browser
string filename = "GridViewExport_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
workbook.SaveAsStream(Response.OutputStream, IronXL.Enum.FileFormat.Xlsx);
Response.Flush();
Response.End();
}
protected void btnExport_Click(object sender, EventArgs e)
{
ExportGridViewToExcel();
}
private void ExportGridViewToExcel()
{
DataTable dt = (DataTable)Session["GridData"];
// Create a workbook and load data from the DataTable
WorkBook workbook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }, workbook);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Apply header row formatting
var headerRange = worksheet["A1:D1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.Font.Size = 12;
headerRange.Style.SetBackgroundColor("#3AC0F2");
// Stream the file to the browser
string filename = "GridViewExport_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
workbook.SaveAsStream(Response.OutputStream, IronXL.Enum.FileFormat.Xlsx);
Response.Flush();
Response.End();
}
Imports System
Imports System.Data
Protected Sub btnExport_Click(sender As Object, e As EventArgs)
ExportGridViewToExcel()
End Sub
Private Sub ExportGridViewToExcel()
Dim dt As DataTable = DirectCast(Session("GridData"), DataTable)
' Create a workbook and load data from the DataTable
Dim workbook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(New DataSet With {.Tables = {dt}}, workbook)
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet
' Apply header row formatting
Dim headerRange = worksheet("A1:D1")
headerRange.Style.Font.Bold = True
headerRange.Style.Font.Size = 12
headerRange.Style.SetBackgroundColor("#3AC0F2")
' Stream the file to the browser
Dim filename As String = "GridViewExport_" & DateTime.Now.ToString("yyyyMMdd") & ".xlsx"
Response.Clear()
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition", "attachment;filename=" & filename)
workbook.SaveAsStream(Response.OutputStream, IronXL.Enum.FileFormat.Xlsx)
Response.Flush()
Response.End()
End Sub
Adım Adım Dışa Aktarım Nasıl Çalışır?
İşlem üç mantıksal adımda parçalanır:
- DataTable'ı Alın --
Session["GridData"], ızgaraya bağlanan aynıDataTable'ı döndürür. Bu, tekrar eden veri tabanı çağrılarını önler. - WorkBook'u Oluşturun --
WorkBook.LoadWorkSheetsFromDataSet,DataSetiçindeki herDataTableiçin otomatik olarak bir çalışma sayfası oluşturur, sütun başlıklarını ve satır değerlerini ilgili hücrelere kopyalar. - Tarayıcıya Akıtın --
Content-TypeOOXML MIME türüne ayarlandığında veResponse.OutputStream'e yazıldığında, doğru.xlsxuzantısı ile bir tarayıcı indirmesi başlatır. Disk'e geçici bir dosya yazılmamaktadır.
Bu, eski HtmlTextWriter yaklaşımından temelde farklıdır. Dışa aktarılan dosya, Microsoft Excel'in yerel olarak kullandığı Open XML formatını kullanır, böylece uyarılar olmadan açılır.
Verileri programatik olarak yükleme hakkında daha fazla bilgi için IronXL WorkBook belgelerine ve C#'da DataTable'ı Excel'e dışa aktarma rehberi'ne bakın.

Excel Dosyasını Yayınlamak Yerine Diske Nasıl Kaydedersiniz?
Uygulamanız, kullanıcıya bir indirme bağlantısı sağlamadan önce dışa aktarımları sunucuda arşivlemeye ihtiyaç duyuyorsa, çalışma kitabını Response.OutputStream'ya akıtmak yerine bir dosya yoluna kaydedin:
private void SaveExcelToDisk(WorkBook workbook, string exportFolder)
{
// Ensure the exports directory exists
if (!System.IO.Directory.Exists(exportFolder))
{
System.IO.Directory.CreateDirectory(exportFolder);
}
string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
string filename = System.IO.Path.Combine(exportFolder, $"Report_{timestamp}.xlsx");
workbook.SaveAs(filename);
// Return the relative path for generating a download link
string relativePath = "~/Exports/Report_" + timestamp + ".xlsx";
Response.Write($"<script>alert('File saved to {relativePath}');</script>");
}
private void SaveExcelToDisk(WorkBook workbook, string exportFolder)
{
// Ensure the exports directory exists
if (!System.IO.Directory.Exists(exportFolder))
{
System.IO.Directory.CreateDirectory(exportFolder);
}
string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
string filename = System.IO.Path.Combine(exportFolder, $"Report_{timestamp}.xlsx");
workbook.SaveAs(filename);
// Return the relative path for generating a download link
string relativePath = "~/Exports/Report_" + timestamp + ".xlsx";
Response.Write($"<script>alert('File saved to {relativePath}');</script>");
}
Private Sub SaveExcelToDisk(workbook As WorkBook, exportFolder As String)
' Ensure the exports directory exists
If Not System.IO.Directory.Exists(exportFolder) Then
System.IO.Directory.CreateDirectory(exportFolder)
End If
Dim timestamp As String = DateTime.Now.ToString("yyyyMMdd_HHmmss")
Dim filename As String = System.IO.Path.Combine(exportFolder, $"Report_{timestamp}.xlsx")
workbook.SaveAs(filename)
' Return the relative path for generating a download link
Dim relativePath As String = "~/Exports/Report_" & timestamp & ".xlsx"
Response.Write($"<script>alert('File saved to {relativePath}');</script>")
End Sub
Yayınlama ve Disk'e Kaydetme Arasında Seçim Yapma
| Strateji | Artılar | Eksiler | En İyi İçin |
|---|---|---|---|
| Tarayıcıya yayınlayarak | Disk kullanımı yok, anında teslim | Arşivleme veya tekrar gönderme yapılamaz | Talebe bağlı kullanıcı dışa aktarımları |
| Disk'e kaydet | Dosya denetim için, yeniden indirme veya e-posta için kalır | Temizlik işi gerektirir, disk alanı yönetimi | Planlı raporlar, denetim izleri |
Çoğu etkileşimli web uygulaması için, doğrudan tarayıcıya yayınlama doğru seçenektir. Dosyayı e-posta ile göndermeniz, uyumluluk için saklamanız veya bir dosya yönetim sayfasından tekrar indirilebilir hale getirmeniz gerektiğinde diske kaydedin.
Dışa Aktarılan Excel Sayfasına İleri Düzeyde Biçimlendirme Nasıl Uygulanır?
IronXL, hücre stilleri, sütun genişlikleri, sayı formatları ve daha fazlası üzerinde ince ayarlı kontrol sağlar. Aşağıdaki örnek, profesyonel bir şekilde stillendirilmiş bir dışa aktarım nasıl oluşturulacağını göstermektedir:
private void ExportWithFormatting()
{
DataTable dt = new DataTable("Products");
dt.Columns.Add("Product", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Columns.Add("InStock", typeof(bool));
dt.Rows.Add("Widget A", "Hardware", 29.99m, true);
dt.Rows.Add("Widget B", "Hardware", 49.99m, false);
dt.Rows.Add("Service Plan", "Support", 199.00m, true);
WorkBook workbook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }, workbook);
WorkSheet sheet = workbook.WorkSheets[0];
// Style the header row
sheet["A1:D1"].Style.Font.Bold = true;
sheet["A1:D1"].Style.Font.Size = 13;
sheet["A1:D1"].Style.SetBackgroundColor("#2196F3");
sheet["A1:D1"].Style.Font.Color = "#FFFFFF";
// Apply currency format to the Price column (column C, rows 2 onwards)
sheet["C2:C4"].Style.NumberFormat.Format = "$#,##0.00";
// Auto-size all columns for readability
for (int col = 0; col < 4; col++)
{
sheet.AutoSizeColumn(col);
}
// Freeze the header row so it stays visible when scrolling
sheet.FreezePanes(0, 0, 1, 0);
workbook.SaveAs("FormattedExport.xlsx");
}
private void ExportWithFormatting()
{
DataTable dt = new DataTable("Products");
dt.Columns.Add("Product", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Columns.Add("InStock", typeof(bool));
dt.Rows.Add("Widget A", "Hardware", 29.99m, true);
dt.Rows.Add("Widget B", "Hardware", 49.99m, false);
dt.Rows.Add("Service Plan", "Support", 199.00m, true);
WorkBook workbook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } }, workbook);
WorkSheet sheet = workbook.WorkSheets[0];
// Style the header row
sheet["A1:D1"].Style.Font.Bold = true;
sheet["A1:D1"].Style.Font.Size = 13;
sheet["A1:D1"].Style.SetBackgroundColor("#2196F3");
sheet["A1:D1"].Style.Font.Color = "#FFFFFF";
// Apply currency format to the Price column (column C, rows 2 onwards)
sheet["C2:C4"].Style.NumberFormat.Format = "$#,##0.00";
// Auto-size all columns for readability
for (int col = 0; col < 4; col++)
{
sheet.AutoSizeColumn(col);
}
// Freeze the header row so it stays visible when scrolling
sheet.FreezePanes(0, 0, 1, 0);
workbook.SaveAs("FormattedExport.xlsx");
}
Private Sub ExportWithFormatting()
Dim dt As New DataTable("Products")
dt.Columns.Add("Product", GetType(String))
dt.Columns.Add("Category", GetType(String))
dt.Columns.Add("Price", GetType(Decimal))
dt.Columns.Add("InStock", GetType(Boolean))
dt.Rows.Add("Widget A", "Hardware", 29.99D, True)
dt.Rows.Add("Widget B", "Hardware", 49.99D, False)
dt.Rows.Add("Service Plan", "Support", 199.0D, True)
Dim workbook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(New DataSet With {.Tables = {dt}}, workbook)
Dim sheet As WorkSheet = workbook.WorkSheets(0)
' Style the header row
sheet("A1:D1").Style.Font.Bold = True
sheet("A1:D1").Style.Font.Size = 13
sheet("A1:D1").Style.SetBackgroundColor("#2196F3")
sheet("A1:D1").Style.Font.Color = "#FFFFFF"
' Apply currency format to the Price column (column C, rows 2 onwards)
sheet("C2:C4").Style.NumberFormat.Format = "$#,##0.00"
' Auto-size all columns for readability
For col As Integer = 0 To 3
sheet.AutoSizeColumn(col)
Next
' Freeze the header row so it stays visible when scrolling
sheet.FreezePanes(0, 0, 1, 0)
workbook.SaveAs("FormattedExport.xlsx")
End Sub
IronXL'de Bulunan Biçimlendirme Seçenekleri
IronXL, IronXL.Styles ad alanı aracılığıyla zengin bir biçimlendirme özellik seti sunar:
- Yazı tipi stili -- kalın, italik, altı çizili, yazı tipi ailesi ve boyutu
- Hücre arka plan renkleri -- doğrudan kabul edilen hex renk dizeleri
- Sayı ve tarih formatları -- para birimi, yüzde ve tarih kalıpları dahil her türlü Excel format dizeleri
- Sütun genişliği -- manuel piksel genişliği veya otomatik sığma için
AutoSizeColumn - Pencere dondurma -- kaydırma sırasında başlık satırlarını veya sütunları kilitleyin
- Hücre kenarlıkları -- konfigüre edilebilir stil ve renkle tüm dört kenarlık
- Hücreleri birleştir -- rapor başlıkları için satır veya sütunlar arasında hücreleri birleştirin
Tam API referansı için IronXL hücre stil belgesine ve IronXL sayı formatlama belgelerine bakın.

GridView Dışa Aktarımlarında Büyük Veri Kümelerini Nasıl Ele Alırsınız?
GridView binlerce satır ile bağlı olduğunda, dışa aktarmayı hızlı ve bellek verimli tutmanın çeşitli teknikleri vardır:
Sayfalama ve Sunucu Tarafı DataTable
GridView'de yalnızca görünen sayfayı dışa aktarmayın. Veri kaynağınızdan tam veri setini DataTable içine çağırmadan önce WorkBook.LoadWorkSheetsFromDataSet çağrısının içine alın. IronXL, tüm çalışma kitabını birden çok kez belleğe yüklemeden tek geçişte satırları yazar ve bu da onları on binlerce satır için uygun hale getirir.
Birden Fazla Çalışma Sayfası Ekleme
Ayrı sekmelere sahip bir çalışma kitabı üretmek için DataSet içinde birden fazla DataTable nesnesi içerebilirsiniz:
DataSet exportSet = new DataSet();
exportSet.Tables.Add(GetEmployeeData()); // Sheet 1
exportSet.Tables.Add(GetDepartmentData()); // Sheet 2
exportSet.Tables.Add(GetSalaryReport()); // Sheet 3
WorkBook workbook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(exportSet, workbook);
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=MultiSheetReport.xlsx");
workbook.SaveAsStream(Response.OutputStream, IronXL.Enum.FileFormat.Xlsx);
Response.Flush();
Response.End();
DataSet exportSet = new DataSet();
exportSet.Tables.Add(GetEmployeeData()); // Sheet 1
exportSet.Tables.Add(GetDepartmentData()); // Sheet 2
exportSet.Tables.Add(GetSalaryReport()); // Sheet 3
WorkBook workbook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(exportSet, workbook);
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=MultiSheetReport.xlsx");
workbook.SaveAsStream(Response.OutputStream, IronXL.Enum.FileFormat.Xlsx);
Response.Flush();
Response.End();
Imports System.Data
Imports IronXL
Dim exportSet As New DataSet()
exportSet.Tables.Add(GetEmployeeData()) ' Sheet 1
exportSet.Tables.Add(GetDepartmentData()) ' Sheet 2
exportSet.Tables.Add(GetSalaryReport()) ' Sheet 3
Dim workbook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(exportSet, workbook)
Response.Clear()
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition", "attachment;filename=MultiSheetReport.xlsx")
workbook.SaveAsStream(Response.OutputStream, IronXL.Enum.FileFormat.Xlsx)
Response.Flush()
Response.End()
Her DataTable.TableName, Excel'deki çalışma sayfası sekme adı haline gelir. Bu desen, yönetim raporları için çeşitli görünümlerde ilişkili verileri birleştirmek için iyi çalışır.
İlgili rehberler:
IronXL Kullanmanın GridView Dışı Aktarım için Temel Faydaları Nelerdir?
IronXL'i GridView verilerini dışa aktarmak için kullanmak, geleneksel HTML sarmalama yaklaşımlarına göre net avantajlar sunar:
- Gerçek Excel dosyaları -- kullanıcı uyarıları veya hata mesajları olmadan açılan geçerli
.xlsxformatını oluşturur - Office kurulumu gerektirmez -- herhangi bir web sunucusunda Microsoft Excel veya Office interop gerektirmeden çalışır
VerifyRenderingInServerFormgeçersiz kılma yok -- geleneksel kodu karmaşıklıktan arındıran ön kod geçici çözümünü ortadan kaldırır- Tam biçimlendirme kontrolü -- hücreleri stilize et, sayı formatları uygula, pencereleri dondur, ve programatik profesyonel çalışma sayfaları oluştur
- Multi-sheet desteği -- ilişkili veri setlerini tek bir çalışma kitabında ayrı sekmeler olarak dışa aktar
- Çapraz platform uyumluluğu -- Docker kapsayıcıları ve Azure App Service dahil, Windows ve Linux sunucularında doğru şekilde çalışır
Kütüphane, NuGet üzerinde mevcuttur ve .NET 10 dahil olmak üzere tüm modern .NET hedeflerini destekler. Ayrıca, CSV ve ODS gibi diğer formatları okuma ve yazma destekler ve böylece uygulamanızdaki tüm elektronik tablo ihtiyaçlarınız için tek bir bağımlılık oluşturur.
Diğer Excel kütüphaneleriyle yan yana karşılaştırma için IronXL ve ClosedXML ve IronXL özellik genel bakışına bakın.
Sonraki Adımlarınız Neler?
Artık eski HtmlTextWriter GridView dışa aktarmayı temiz, uyarısız bir IronXL uygulamasıyla değiştirmek için ihtiyacınız olan her şeye sahipsiniz. İlerlemek için işte nasıl yapılır:
- Ücretsiz denemeyi deneyin -- kendi projenizde test etmek için IronXL'in 30 günlük ücretsiz denemesine kredi kartı gerektirmeden başlayın
- Daha fazla IronXL eğitimini keşfedin -- IronXL blogu veri ithalatı, hücre formülleri, grafik oluşturma ve Excel şablon iş akışlarını kapsar
- API referansını okuyun -- IronXL API belgeleri,
WorkBook,WorkSheetve stil API'sindeki her yöntemi kapsar - Lisanslama seçeneklerini karşılaştırın -- ekip boyutunuz ve dağıtım senaryonuz için doğru lisansı bulmak için IronXL fiyatlandırmasını inceleyin
- Bir soru sorun -- Iron Software destek ekibi ve topluluk forumları beklenmedik bir durumla karşılaşırsanız mevcuttur
Sıkça Sorulan Sorular
GridView verilerini Excel'e dışa aktarmak için neden IronXL kullanmalıyım?
IronXL, ASP.NET C# dilinde GridView'den oluşturulan gerçek XLSX dosyaları oluşturmanızı sağlar ve HtmlTextWriter ve StringWriter ile ilişkili yaygın tarayıcı uyarıları ve formatlama hataları gibi sorunları önler.
Excel'e aktarma için HtmlTextWriter kullanmanın sınırlamaları nelerdir?
HtmlTextWriter sıklıkla sahte Excel dosyaları üretir ve bu da tarayıcı uyarılarına ve formatlama sorunlarına yol açar. IronXL, bu sorunları gerçek Excel dosyaları üreterek çözer.
IronXL, GridView'den veri aktarma sürecini nasıl geliştirir?
IronXL, geliştiricilerin ASP.NET uygulamalarından doğrudan düzgün biçimlendirilmiş Excel dosyaları oluşturmalarına olanak tanıyarak GridView'den veri dışa aktarımını basitleştirir, HTML bazlı geçici çözümlere olan ihtiyacı ortadan kaldırır.
IronXL, dışa aktarılan Excel dosyaları için hangi dosya formatını kullanır?
IronXL, verileri gerçek XLSX dosyalarına aktarır ve Excel'de açıldığında uyumluluğu ve doğru formatlamayı garanti eder.
IronXL, Excel'e aktarımda formatlama sorunlarıyla ilgili yardımcı olabilir mi?
Evet, IronXL gerçek Excel dosyaları oluşturarak formatlama sorunlarını ortadan kaldırır, bu da verilerin doğru bir şekilde görünmesini sağlar ve tarayıcı uyarılarını tetiklemez.
IronXL ile GridView verilerini dışa aktarma için kod örneği var mı?
Evet, eğitimde IronXL kullanarak GridView verilerini etkin ve verimli bir şekilde Excel'e dışa aktarmayı gösteren kod örnekleri bulunmaktadır.
IronXL, GridView'den büyük veri kümelerini dışa aktarma konusunda destekli mi?
IronXL büyük veri kümelerini yönetmek üzere tasarlandığından, GridView'dan Excel'e kapsamlı veri dışa aktarma işlemleri için uygundur.
Excel dışa aktarma için IronXL'in geleneksel yöntemlere göre sunduğu avantajlar nelerdir?
IronXL, tarayıcı uyarılarını ortadan kaldıran, doğru dosya biçimlendirmesini sağlayan ve GridView verilerini dışa aktarma için basit kod uygulaması sunan daha güvenilir ve verimli bir çözüm sunar.




