Altbilgi içeriğine atla
IRONXL KULLANARAK

C# Kullanarak GridView'den Excele Nasıl Aktarılır

GridView verilerini gerçek bir Excel dosyasına aktarmak, ASP.NET web uygulamalarında en yaygın gereksinimlerden biridir. Geleneksel yaklasimlar HtmlTextWriter ve StringWriter kullanarak, kullanicilar bunlari acmaya calistiginda tarayici uyarilarini ve format hatalarini tetikleyen sahte Excel dosyalari oluşturur. Bu rehber GridView verilerini dogru formatlanmis .xlsx dosyalarina IronXL kullanarak ihraç etmeyi gösterir -- bu sayede geliştiricilerin eski yöntemlerle karsilastiklari bas agrilarini ortadan kaldirir.

Neden Geleneksel GridView Aktarım Yöntemi Sorun Yaratır?

ASP.NET C#'de GridView'den Excel'e ihraç icin klasik yöntem, HTML'i render etmeyi ve Response basliklarini Content-Disposition ek dosya adi degerleriyle ayarlamayi icerir. Bu yaklasim, calisma zamani hatalarindan kacinmak icin public override void VerifyRenderingInServerForm'in ustune yazilmasini gerektirir. Ortaya cikan dosya gerçek bir Excel dosyasi değil -- .xls uzantisi ile maskelemis HTML'dir, bu da kullanicilar bunu actiginda Excel'in uyarilari göstermesine neden olur.

Özellikle, geleneksel teknik şu dezavantajlara sahiptir:

  • Excel her açıldığında "Dosya formatı ve uzantı uyuşmuyor" uyarısı gösterir
  • Biçimlendirme ve veri türleri kaybolur çünkü veriler ham HTML olarak saklanır
  • VerifyRenderingInServerForm'i bir alternatife olarak uygulamalisiniz, projeye teknik borc ekleyerek
  • Ortaya çıkan dosya uygun hücre meta verilerine sahip değildir, bu da onu alt akış otomasyon veya raporlama araçları için kullanılamaz hale getirir

IronXL bu sorunlari, sunucuya Microsoft Office yukleme gerekliligi olmadan gerçek .xlsx Excel dosyalari oluşturarak cözer. Herhangi bir elektronik tablo uygulamasının düzgün bir şekilde açabileceği bir dosya alırsınız; doğru veri türleri, stiller ve OOXML yapısı korunur.

IronXL'i ASP.NET Projenize Nasıl Yüklersiniz?

Herhangi bir aktarım mantığı yazmadan önce, IronXL'i projenize NuGet Paket Yöneticisi'ni kullanarak ekleyin. Visual Studio'da Paket Yöneticisi Konsolunu açın ve çalıştırın:

Install-Package IronXl.Excel
Install-Package IronXl.Excel
SHELL

Alternatif olarak, NuGet Paket Yonetici UI'sinde IronXl.Excel'u arayin ve oradan yukleyin. Kurulduktan sonra, IronXL namespace'ine herhangi bir kod arkasi dosyada referans verebilirsiniz.

IronXL, .NET Standard 2.0 ve üzerini hedefler, bu nedenle modern ASP.NET Core projeleri ve klasik ASP.NET Framework uygulamaları ile çalışır. Web sunucunuzda COM etkileşimi, Office kurulumu ve ek yerel bağımlılıklar gerekli değildir.

Daha fazla detay için, IronXL kurulum kılavuzu ve IronXL NuGet paket sayfasına bakın.

ASP.NET GridView'i Aktarım için Nasıl Kurarsınız?

Default.aspx sayfanizi GridView kontrolu ve bir ihrac dugmesi ile oluşturun. İşaretleme standart Web Formları şeklindedir:

<%@ 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>
$vbLabelText   $csharpLabel

Bu isaretleme, bagli GridView ve ihraci tetikleyen bir dugme ile basit bir sayfa oluşturur. AutoGenerateColumns="true" ozelligi, gridin sütun adlarini dogrudan bagli DataTable'den okudugu anlamina gelir.

Örnek Verileri GridView'e Bağlama

Kod arkanizda, grida bir DataTable baglayin ve ihrac postback'i sirasindaki ileride kullanimi icin Session'de saklayin:

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
$vbLabelText   $csharpLabel

DataTable'i Session'de saklamak, ihrac dugmesi tarafindan tetiklenen postback sirasinda veritabanini yeniden sorgulamaktan veya verileri yeniden yapılandırmaktan kaciniyorsunuz. Gerçek uygulamalar için, sabit kodlanmış satırları Entity Framework veya ADO.NET kullanarak bir veri tabanı sorgusuyla değiştirin.

ASP .NET C#'te GridView'den Excel'e Ihraç: Temiz C# Cozumu: Görüntü 1 - Örnek GridView verilerini gösteriyor

GridView Verilerini IronXL Kullanarak Excel'e Nasıl Aktarırsınız?

GridView ihracinin temiz yaklasimi, DataTable'inizi IronXL WorkBook'ye cevirir ve sonucu dogrudan tarayiciya yayar. İşte tam aktarım 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
Imports IronXL

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
$vbLabelText   $csharpLabel

Adım Adım Aktarımın Çalışma Şekli

Süreç üç mantıksal adıma ayrılır:

  1. DataTable'i Getirin -- Session["GridData"] grid'e baglanan ayni DataTable'i geri dondurur. Bu, yinelenen veri tabanı çağrılarını önler.
  2. WorkBook'u Insaa Edin -- WorkBook.LoadWorkSheetsFromDataSet, DataSet icindeki her DataTable icin otomatik olarak bir calisma sayfasi oluşturur, sütun basliklarini ve satir degerlerini uygun hucrelere kopyalar.
  3. Tarayiciya yayimlayin -- Content-Type'yi OOXML MIME türune ayarlamak ve Response.OutputStream'a yazmak, dogru .xlsx uzantisi ile tarayici indirmesini tetikler. Geçici dosya diske yazılmaz.

Bu, eski HtmlTextWriter yaklasimindan temelde farklidir. Aktarılan dosya, Microsoft Excel'in yerel olarak kullandığı Open XML formatını kullanır -- bu nedenle uyarılar olmadan açılır.

Verileri programlı olarak yükleme hakkında daha fazla bilgi için, IronXL WorkBook belgelerine ve C# ile DataTable nasıl Excel'e aktarılır bölümüne bakın.

ASP .NET C#'te GridView'den Excel'e Ihraç: Temiz C# Cozumu: Görüntü 2 - Ihrac Edilen Excel dosyasi

Excel Dosyasını Akış Yapmak Yerine Diske Nasıl Kaydedersiniz?

Uygulamaniz indirme bağlantısını kullanıcıya teslim etmeden önce sunucuda ihrac edilenleri arsivlemesi gerekiyorsa, calisma kitabini Response.OutputStream 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
$vbLabelText   $csharpLabel

Akış ile Disk Kaydetme Arasında Seçim Yapma

Akışa karşı disk kaydetme aktarım stratejilerinin karşılaştırılması
Strateji Artılar Eksiler En İyi Kullanım Amacı
Tarayıcıya akış Disk kullanımı yok, anında teslimat Arşivleyemez veya yeniden gönderemez Talep üzerine kullanıcı aktarımları
Diske kaydet Dosya denetim, yeniden indirme veya e-posta için kalıcıdır Temizlik işi, disk alanı yönetimi gerektirir Zamanlanmış raporlar, denetim izleri

Çoğu etkileşimli web uygulaması için, doğrudan tarayıcıya akış, doğru seçimdir. Dosyayı e-posta ile göndermeniz, uyumluluk için depolamanız veya bir dosya yönetimi sayfasından yeniden indirmeye izin vermeniz gerekiyorsa, diske kaydedin.

Aktarılan Excel Sayfasına Gelişmiş Biçimlendirme Nasıl Uygulanır?

IronXL, hücre stilleri, sütun genişlikleri, sayı formatları ve daha fazlası üzerinde ince ayar yapmanıza olanak tanır. Aşağıdaki örnek, profesyonelce biçimlendirilmiş bir aktarımın nasıl oluşturulacağını gösterir:

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
$vbLabelText   $csharpLabel

IronXL'de Mevcut Biçimlendirme Seçenekleri

IronXL, IronXl.Styles namespace'i aracılığıyla zengin bir formatlama özellikleri seti sunar:

  • Yazı stili -- kalın, italik, altı çizili, yazı tipi ailesi ve boyutu
  • Hücre arka plan renkleri -- doğrudan kabul edilen onaltılı renk dizeleri
  • Sayı ve tarih formatları -- parada, yüzde ve tarih desenleri dahil olmak üzere herhangi bir Excel format dizgesi
  • Sütun genisligi -- manuel piksel genisligi veya otomatik uydurma icin AutoSizeColumn
  • Pencereleri dondur -- başlık satırlarını veya sütunlarını kaydırma sırasında kilitle
  • Hücre kenarları -- konfigüre edilebilir stil ve renk ile tüm dört kenar
  • Hücreleri birleştir -- rapor başlıkları için satır veya sütunlar arasında hücreleri birleştir

Tam API referansı için, IronXL hücre stil belgeleri ve IronXL sayı formatlama bölümüne bakın.

ASP .NET C#'te GridView'den Excel'e Ihraç: Temiz C# Cozumu: Görüntü 3 - Ihrac Edilen formatlanmis Excel dokümani

GridView Aktarımlarında Büyük Veri Kümeleri Nasıl Yönetilir?

GridView binlerce satırla bağlandığında, birkaç teknik aktarımı hızlı ve bellek açısından verimli tutar:

Sıralama ve Sunucu Tarafı DataTable

Sadece GridView'in görünen sayfasını aktarmayın. Veri kaynaginizdan tüm veri setini DataTable icine alin ve WorkBook.LoadWorkSheetsFromDataSet arayarak cagirin. IronXL, tüm çalışma kitabını belleğe birden fazla kez yüklemeden tek geçişte satırları yazar, bu da onu on binlerce satır için uygun hale getirir.

Birkaç Çalışma Sayfası Ekleme

Ayrica DataSet icinde birden fazla DataTable nesnesi ekleyerek, ayri sekmelerle bir calisma kitabı oluşturabilirsiniz:

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.FileFormat.Xlsx)
Response.Flush()
Response.End()
$vbLabelText   $csharpLabel

Her DataTable.TableName Excel'deki calisma sayfasi sekme adi olur. Bu model, birden çok görünümden ilgili verileri birleştiren yönetim raporları için iyi çalışır.

İlgili kılavuzlar:

GridView Aktarımı için IronXL Kullanmanın Ana Faydaları Nelerdir?

GridView verilerini IronXL ile aktarmak, geleneksel HTML sarmalayıcı yaklaşımına kıyasla belirgin avantajlar sunar:

  • Gerçek Excel dosyalari -- tarayici alarmlari veya hata mesajlari olmadan acilan gecerli .xlsx formati oluşturur
  • Office kurulumu gerekmiyor -- Microsoft Excel veya Office etkileşimi gerektirmeden herhangi bir web sunucusunda çalışır
  • VerifyRenderingInServerForm ustune yazma yok -- geleneksel kodu karistiran sablon alternatifi ortadan kaldirir
  • Tam biçimlendirme kontrolü -- hücreleri stil, sayı formatları uygula, pencereleri dondur ve programlı olarak profesyonel çalışma sayfaları oluştur
  • Çoklu sayfa desteği -- tek bir çalışma kitabında ilgili veri setlerini ayrı sekmeler olarak dışa aktar
  • Çapraz platform uyumluluğu -- Docker konteynerleri ve Azure App Service dahil olmak üzere Windows ve Linux sunucularında doğru şekilde çalışır

Kutuphanesi NuGet uzerinde mevcuttur ve .NET 10 dahil tüm modern .NET hedeflerini destekler. Ayrica uygulamanizdaki tüm tablo ihtiyaçlari icin teklif bir bagimliligi haline getiren CSV ve ODS gibi diğer formatlari okuma ve yazma yetenegine de sahiptir.

Diğer Excel kutuphaneleriyle karsilastirmak icin IronXL vs ClosedXML ve IronXL özellik genel bakisi sayfalarina bakin.

Sıradaki Adımlarınız Neler?

Artık eski HtmlTextWriter GridView ihracini, temiz ve uyari icermeyen bir IronXL uygulamasi ile değiştirmek icin ihtiyaçiniz olan her seye sahipsiniz. Ilerlemenin yolu su sekilde:

Sıkça Sorulan Sorular

GridView verilerini Excel'e aktarmak için neden IronXL kullanmalıyım?

IronXL, HtmlTextWriter ve StringWriter ile ilişkili yaygın sorunlar olan tarayıcı uyarıları ve biçimlendirme hatalarını önleyerek ASP.NET C#'de GridView'den gerçek XLSX dosyaları oluşturmanıza olanak tanır.

Excel'e aktarma sırasında HtmlTextWriter kullanmanın sınırlamaları nelerdir?

HtmlTextWriter genellikle tarayıcı uyarılarına ve biçimlendirme sorunlarına neden olabilecek sahte Excel dosyaları oluşturur. IronXL, gerçek Excel dosyaları üreterek bu sorunları çözer.

IronXL, GridView'den veri ihraç etme sürecini nasıl iyileştirir?

IronXL, geliştiricilerin ASP.NET uygulamalarından doğrudan düzgün biçimlendirilmiş Excel dosyaları oluşturmasına olanak tanıyarak, HTML tabanlı çözümler gereksinimini ortadan kaldırarak GridView'den veri ihracını basitleştirir.

IronXL, hangi dosya formatını Excel dosyaları için kullanır?

IronXL, uyumluluğu ve Excel'de doğru biçimlendirmeyi sağlamak için verileri gerçek XLSX dosyalarına ihraç eder.

IronXL, Excel'e aktarırken biçimlendirme sorunlarına yardımcı olabilir mi?

Evet, IronXL, tarayıcı uyarılarını tetiklemeden verilerin doğru görünmesini sağlayan gerçek Excel dosyalarını yaratarak biçimlendirme sorunlarını ortadan kaldırır.

GridView verilerini IronXL ile ihraç etmek için bir kod örneği var mı?

Evet, öğretici, GridView verilerini verimli ve etkili bir şekilde Excel'e aktarmak için IronXL'nin nasıl kullanılacağını gösteren kod örneklerini içerir.

IronXL, GridView'den büyük veri kümelerini ihraç etmeyi destekliyor mu?

IronXL, GridView'den Excel'e geniş veri ihraç etmek için uygun hale getirerek büyük veri kümelerini verimli bir şekilde işlemek üzere tasarlanmıştır.

Excel ihracatı için geleneksel yöntemler üzerine IronXL kullanmanın avantajları nelerdir?

IronXL, tarayıcı uyarılarını ortadan kaldırarak, doğru dosya biçimlendirmesini sağlayarak ve GridView verilerini ihraç etmek için basit kod uygulaması sunarak daha güvenilir ve verimli bir çözüm sunar.

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