Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Exportieren von SQL-Daten nach Excel mit C# und IronXL

Der Export von Daten aus SQL Server nach Microsoft Excel ist eine häufige Anforderung für .NET-Entwickler, die Berichtssysteme, Datenanalysetools und Geschäftsanwendungen erstellen. Dieses Tutorial zeigt, wie man SQL-Daten mit C# und IronXL, einer leistungsstarken Excel-Bibliothek, die den gesamten Prozess vereinfacht, ohne dass Microsoft Office installiert werden muss, nach Excel exportiert.

Starten Sie Ihre kostenlose Testversion und folgen Sie den Codebeispielen unten.

Starten Sie jetzt mit IronXL.
green arrow pointer

Wie exportiert man am besten Daten aus einer SQL-Server-Datenbank?

Der effizienteste Ansatz für den Export von Daten aus SQL Server in eine Excel-Datei umfasst drei Schritte: Herstellen einer Datenbankverbindung, Abrufen von Daten in einer DataTable und Schreiben der Daten in ein Excel-Arbeitsblatt mit IronXL. Im Gegensatz zu den Microsoft Interop-Lösungen arbeitet IronXL unabhängig und verarbeitet große Datenmengen mit hervorragender Leistung.

Wie stellt man eine Verbindung zu SQL Server her und ruft Daten ab?

Bevor Sie SQL-Daten exportieren können, müssen Sie eine Verbindung herstellen und eine SQL-Abfrage ausführen, um eine DataTable zu füllen. Die Verbindungszeichenfolge enthält die Anmeldeinformationen für die SQL-Server-Datenbank und die Serverinformationen, die für den Zugriff auf Ihre Daten erforderlich sind.

Sie müssen die folgenden Namespaces in Ihr Visual Studio-Projekt importieren:

using IronXL;
using System.Data;
using System.Data.SqlClient;
// Define connection string for SQL Server
string connectionString = @"Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True";
// SQL query to retrieve data from SQL Server table
string sql = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Use SqlDataAdapter to fill DataTable with query results
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    // Create new workbook and worksheet
    WorkBook workBook = WorkBook.Create();
    WorkSheet workSheet = workBook.CreateWorkSheet("CustomerData");
    // Export DataTable to Excel worksheet with column names
    int rowIndex = 1;
    // Write column headers from DataTable
    for (int j = 0; j < dt.Columns.Count; j++)
    {
        workSheet.SetCellValue(0, j, dt.Columns[j].ColumnName);
    }
    // Fill worksheet with data values
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            string cellValue = dt.Rows[i][j].ToString();
            workSheet.SetCellValue(rowIndex, j, cellValue);
        }
        rowIndex++;
    }
    // Save Excel file in xlsx format
    workBook.SaveAs("CustomerExport.xlsx");
}
using IronXL;
using System.Data;
using System.Data.SqlClient;
// Define connection string for SQL Server
string connectionString = @"Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True";
// SQL query to retrieve data from SQL Server table
string sql = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Use SqlDataAdapter to fill DataTable with query results
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    // Create new workbook and worksheet
    WorkBook workBook = WorkBook.Create();
    WorkSheet workSheet = workBook.CreateWorkSheet("CustomerData");
    // Export DataTable to Excel worksheet with column names
    int rowIndex = 1;
    // Write column headers from DataTable
    for (int j = 0; j < dt.Columns.Count; j++)
    {
        workSheet.SetCellValue(0, j, dt.Columns[j].ColumnName);
    }
    // Fill worksheet with data values
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            string cellValue = dt.Rows[i][j].ToString();
            workSheet.SetCellValue(rowIndex, j, cellValue);
        }
        rowIndex++;
    }
    // Save Excel file in xlsx format
    workBook.SaveAs("CustomerExport.xlsx");
}
$vbLabelText   $csharpLabel

Ausgabe

Wie man mit C# und IronXL SQL-Daten nach Excel exportiert: Bild 1 - Generierte Excel-Datei

Dieser Code erstellt eine Excel-Datei mit korrekt formatierten Spaltenüberschriften, die von Ihrer SQL Server-Tabellenstruktur abgeleitet sind. Die DataTable dt speichert die Abfrageergebnisse, die dann systematisch in jede Zelle des Excel-Blatts geschrieben werden. Der folgende Code veranschaulicht das Add-Methodenmuster zum Auffüllen von Arbeitsblattzellen. IronXL unterstützt sowohl das xls- als auch das xlsx-Format, um maximale Kompatibilität mit Microsoft Office-Anwendungen zu gewährleisten.

Wie können Sie Daten mit einer ASP.NET-Exportschaltfläche exportieren?

Bei Webanwendungen wird der Export in der Regel ausgelöst, wenn ein Benutzer auf eine Exportschaltfläche klickt. Der folgende Code zeigt, wie das Schaltflächenklick-Ereignis behandelt und ein Dateidownload unter Verwendung von Response.AddHeader für die Inhaltsdisposition initiiert wird.

using IronXL;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;
public partial class ExportPage : Page
{
    private void ExportButton_Click(object sender, EventArgs e)
    {
        string connectionString = @"Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";
        try
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                // Execute SQL query to get data from SQL server
                SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet);
                // Create Excel workbook from DataSet - each table becomes a sheet
                WorkBook workBook = WorkBook.Create();
                WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
                // Convert to byte array for download
                byte[] fileBytes = workBook.ToByteArray();
                string filename = "OrdersExport.xlsx";
                // Set response headers for file download
                Response.Clear();
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                Response.BinaryWrite(fileBytes);
                Response.End();
            }
        }
        catch (Exception ex)
        {
            // Handle any errors during export
            Response.Write("Export error: " + ex.Message);
        }
    }
}
using IronXL;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;
public partial class ExportPage : Page
{
    private void ExportButton_Click(object sender, EventArgs e)
    {
        string connectionString = @"Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";
        try
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                // Execute SQL query to get data from SQL server
                SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet);
                // Create Excel workbook from DataSet - each table becomes a sheet
                WorkBook workBook = WorkBook.Create();
                WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
                // Convert to byte array for download
                byte[] fileBytes = workBook.ToByteArray();
                string filename = "OrdersExport.xlsx";
                // Set response headers for file download
                Response.Clear();
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                Response.BinaryWrite(fileBytes);
                Response.End();
            }
        }
        catch (Exception ex)
        {
            // Handle any errors during export
            Response.Write("Export error: " + ex.Message);
        }
    }
}
$vbLabelText   $csharpLabel

Beispiel Export-Schaltfläche

Mit C# und IronXL SQL-Daten nach Excel exportieren: Bild 2 - Beispiel für eine Exportschaltfläche

Ausgabe

Wie man mit C# und IronXL SQL-Daten nach Excel exportiert: Bild 3 - Generierte Datei

Die Parameter object sender und EventArgs e sind Standard für ASP.NET Event Handler. Im Gegensatz zu Microsoft Interop, das object misValue für fehlende Parameter verlangt, verwendet IronXL eine sauberere API. Wenn der Benutzer auf die Schaltfläche "Exportieren" klickt, führt diese private ungültige Methode die Datenbankabfrage aus, erstellt das Excel-Dokument und löst den Dateidownload über den Browser aus.

Wie importiert man Daten und erstellt Excel-Dateien mit Spaltenüberschriften?

IronXL bietet mehrere Methoden zum Erstellen von Excel-Dateien und Einlesen von Daten. Die Methode LoadWorkSheetsFromDataSet akzeptiert DataTable-Sammlungen und behält automatisch die Spaltennamen als Überschriften in Ihrem Excel-Arbeitsblatt bei. Dieser Ansatz funktioniert nahtlos mit System.Data-Objekten und Microsoft SQL Server.

using IronXL;
using System.Data;
using System.Data.SqlClient;
// Connection to SQL database
string connectionString = @"Data Source=.;Initial Catalog=Inventory;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Query multiple tables from database
    SqlDataAdapter productsAdapter = new SqlDataAdapter("SELECT * FROM Products", connection);
    SqlDataAdapter categoriesAdapter = new SqlDataAdapter("SELECT * FROM Categories", connection);
    DataSet dataSet = new DataSet();
    productsAdapter.Fill(dataSet, "Products");
    categoriesAdapter.Fill(dataSet, "Categories");
    // Create new workbook and load all tables
    WorkBook workBook = WorkBook.Create();
    WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
    // Save as xlsx file
    workBook.SaveAs("InventoryReport.xlsx");
}
using IronXL;
using System.Data;
using System.Data.SqlClient;
// Connection to SQL database
string connectionString = @"Data Source=.;Initial Catalog=Inventory;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Query multiple tables from database
    SqlDataAdapter productsAdapter = new SqlDataAdapter("SELECT * FROM Products", connection);
    SqlDataAdapter categoriesAdapter = new SqlDataAdapter("SELECT * FROM Categories", connection);
    DataSet dataSet = new DataSet();
    productsAdapter.Fill(dataSet, "Products");
    categoriesAdapter.Fill(dataSet, "Categories");
    // Create new workbook and load all tables
    WorkBook workBook = WorkBook.Create();
    WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
    // Save as xlsx file
    workBook.SaveAs("InventoryReport.xlsx");
}
$vbLabelText   $csharpLabel

Ausgabe

How to Export SQL Data to Excel Using C# with IronXL: Image 4 - Generated file with column headers

Mit diesem Ansatz können mehrere SQL Server-Tabellen effizient gehandhabt werden, indem separate Arbeitsblattregisterkarten innerhalb einer einzigen Arbeitsmappe erstellt werden. Bei Anwendungen, die gespeicherte Prozeduren verwenden, ersetzen Sie einfach die Inline-SQL-Abfrage durch Ihren Prozeduraufruf mit CommandType.StoredProcedure.

Was ist mit Webanwendungen mit HTML-Markup?

In ASP.NET-Anwendungen, bei denen das HTML-Markup aus Schaltflächen und Datenrastern besteht, lässt sich IronXL nahtlos integrieren. Das HTML-Markup Ihrer Seite besteht aus Standard-Web-Steuerelementen, die serverseitige Exportvorgänge auslösen, während IronXL die gesamte Excel-Generierung ohne Abhängigkeiten von Microsoft Office übernimmt.

Eine ausführliche Anleitung zum Export von DataSet- und DataTable-Objekten finden Sie in der IronXL-Dokumentation.

Abschluss

Der Export von SQL-Daten nach Excel unter Verwendung von C# wird mit IronXL zum Kinderspiel. Die Bibliothek eliminiert komplexe Interop-Abhängigkeiten und bietet gleichzeitig robuste Unterstützung für DataTable, DataSet und direkte Datenbankintegration. Egal, ob es sich um die Erstellung von Konsolenanwendungen oder webbasierten Berichtssystemen mit Dateidownload-Funktionen handelt, IronXL bietet eine zuverlässige Generierung von Excel-Dateien.

Erwerben Sie eine Lizenz für den produktiven Einsatz oder testen Sie mit einer kostenlosen Testversion den vollen Funktionsumfang dieser Excel-Bibliothek in Ihren .NET-Projekten.

Häufig gestellte Fragen

Wie kann ich SQL-Daten mit C# nach Excel exportieren?

Sie können SQL-Daten mit C# nach Excel exportieren, indem Sie IronXL, eine leistungsstarke Excel-Bibliothek, nutzen. Sie vereinfacht den Prozess und erfordert keine Installation von Microsoft Office.

Was sind die Voraussetzungen für die Verwendung von IronXL zum Exportieren von SQL-Daten?

Um IronXL für den Export von SQL-Daten zu verwenden, benötigen Sie ein grundlegendes Verständnis von C#, Zugang zu einem SQL-Server und die IronXL-Bibliothek, die in Ihrer Entwicklungsumgebung installiert ist.

Muss ich Microsoft Office installiert haben, um SQL-Daten mit IronXL nach Excel zu exportieren?

Nein, IronXL ermöglicht den Export von SQL-Daten nach Excel, ohne dass Microsoft Office auf Ihrem System installiert sein muss.

Kann IronXL beim Exportieren von SQL-Daten nach Excel mit großen Datensätzen umgehen?

Ja, IronXL ist in der Lage, große Datenmengen effizient zu verarbeiten, so dass es sich für den Export umfangreicher SQL-Daten nach Excel eignet.

Ist IronXL mit allen Versionen von SQL Server kompatibel?

IronXL ist so konzipiert, dass es mit verschiedenen Versionen von SQL Server zusammenarbeitet, um Kompatibilität und Benutzerfreundlichkeit in unterschiedlichen Umgebungen zu gewährleisten.

Was sind einige Anwendungsfälle für den Export von SQL-Daten nach Excel?

Der Export von SQL-Daten nach Excel ist nützlich für die Erstellung von Berichtssystemen, Datenanalysetools und Geschäftsanwendungen, bei denen Daten in einem weit verbreiteten Format leicht zugänglich und gemeinsam nutzbar sein müssen.

Unterstützt IronXL Formatierungsoptionen für Excel-Dateien?

Ja, IronXL bietet eine Reihe von Formatierungsoptionen, mit denen Sie das Aussehen und die Struktur Ihrer exportierten Excel-Dateien anpassen können.

Wie vereinfacht IronXL den Prozess des Exports von SQL-Daten nach Excel?

IronXL vereinfacht den Exportprozess, indem es intuitive Methoden für die Verbindung mit SQL Server, den Abruf von DataTable-Datensätzen und die Erstellung von Excel-Dateien bereitstellt, ohne dass eine komplexe Einrichtung oder zusätzliche Software erforderlich ist.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen