Zum Fußzeileninhalt springen
IRONXL VERWENDEN

SQL-Daten mit IronXL in C# nach Excel exportieren

Die Datenexportierung von SQL Server zu Microsoft Excel ist eine häufige Aufgabe for .NET-Entwickler, die Berichtssysteme, Datenanalysetools und Geschäftsanwendungen erstellen. Dieses Tutorial zeigt Ihnen, wie Sie SQL-Daten mit C# nach Excel exportieren, indem Sie IronXL verwenden, eine .NET Excel-Bibliothek, die den gesamten Prozess ohne Neintwendigkeit einer Microsoft Office-Installation übernimmt.

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

Starten Sie jetzt mit IronXL.
green arrow pointer

Wie installieren Sie IronXL für den SQL-Datenexport?

Bevor Sie Code schreiben, müssen Sie IronXL zu Ihrem Projekt hinzufügen. Der schnellste Weg ist über die NuGet-Paket-Manager-Konsole in Visual Studio:

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

Alternativ verwenden Sie die .NET CLI:

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

Sobald Sie installiert haben, fügen Sie die erforderlichen Namespaces an den Anfang Ihrer Datei hinzu. Mit .NET 10-Ebene-Aussagen sieht Ihr Setup so aus:

using IronXL;
using System.Data;
using System.Data.SqlClient;
using IronXL;
using System.Data;
using System.Data.SqlClient;
$vbLabelText   $csharpLabel

IronXL zielt auf .NET Standard 2.0 und höher, sodass es mit .NET 10, .NET Framework, ASP.NET Core und Blazor-Projekten ohne zusätzliche Konfiguration funktioniert. Sie finden das Paket auf NuGet.

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

Der effizienteste Ansatz, um Daten von SQL Server in eine Excel-Datei zu exportieren, umfasst drei Schritte: Aufbau einer Datenbankverbindung, Abrufen von Daten in ein DataTable und Schreiben der Daten in ein Excel-Arbeitsblatt mit IronXL. Im Gegensatz zu Microsoft-Interop-Lösungen arbeitet IronXL unabhängig und verarbeitet große Datensätze, ohne dass Leistungsengpässe durch COM-Interop-Overhead entstehen.

Das Kernmuster ist einfach. SqlDataAdapter ist Teil von Microsofts ADO.NET-Datenzugriffs-Framework und war seit .NET 1.0 der Standardweg, um DataTable-Objekte aus relationalen Datenbanken zu füllen:

  1. Öffnen Sie eine SqlConnection mit Ihrem Verbindungstring
  2. Verwenden Sie SqlDataAdapter, um ein DataTable oder DataSet zu füllen
  3. Rufen Sie IronXL-Methoden auf, um eine Arbeitsmappe zu erstellen und Arbeitsblattzellen zu füllen
  4. Speichern Sie die Arbeitsmappe als .xlsx oder .xls

Dieser Ansatz ist kompatibel mit SQL Server 2012 und höher sowie mit Azure SQL-Datenbank, Amazon RDS für SQL Server und jeder ADO.NET-kompatiblen Datenquelle. Das gleiche Muster gilt, ob Sie mit einer Konsolenanwendung oder einem webbasierten Berichterstattungstool arbeiten.

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 ein 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.

Das folgende Beispiel fragt die Neinrthwind Customers-Tabelle ab und schreibt jede Zeile in ein Excel-Arbeitsblatt mit der IronXL Zellenschreib-API:

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Neinrthwind;Integrated Security=True";
string sql = "SELECT * FROM Customers";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Customers");

// Write column headers
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
}

// Write data rows
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        workSheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString());
    }
}

workBook.SaveAs("CustomerExport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Neinrthwind;Integrated Security=True";
string sql = "SELECT * FROM Customers";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Customers");

// Write column headers
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
}

// Write data rows
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        workSheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString());
    }
}

workBook.SaveAs("CustomerExport.xlsx");
$vbLabelText   $csharpLabel

Ausgabe

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

Dieser Code erstellt eine Excel-Datei mit korrekt formatierten Spaltenüberschriften, die von Ihrer SQL Server-Tabellenstruktur abgeleitet sind. Der DataTable dt speichert die Abfrageergebnisse, die dann systematisch in jede Zelle mit Null-basierten Zeilen- und Spaltenindizes geschrieben werden. IronXL unterstützt sowohl .xls als auch .xlsx Formate für eine breite Kompatibilität mit Microsoft Office-Anwendungen.

Wenn Ihre SQL-Tabelle DateTime oder numerische Spalten enthält, konvertieren Sie die Zellwerte angemessen, bevor Sie SetCellValue aufrufen. Das direkte Übergeben von numerischen Typen bewahrt die Excel-Datentypen und ermöglicht das Sortieren und Berechnen von Formeln auf den exportierten Spalten.

Wie verwenden Sie LoadWorkSheetsFromDataSet, um mehrere Tabellen zu exportieren?

Wenn Ihr Bericht Daten aus mehreren SQL-Tabellen benötigt - zum Beispiel Produkte und Kategorien - können Sie diese in ein DataSet laden und IronXL automatisch ein Arbeitsblatt pro Tabelle erstellen lassen. Dies ist der prägnanteste Ansatz zum Export eines DataSets oder DataTables nach Excel.

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=.;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

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");

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

workBook.SaveAs("InventoryReport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=.;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

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");

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

workBook.SaveAs("InventoryReport.xlsx");
$vbLabelText   $csharpLabel

Ausgabe

Wie exportiert man SQL-Daten nach Excel mit C# und IronXL: Bild 4 - Generierte Datei mit Spaltenüberschriften

LoadWorkSheetsFromDataSet liest die TableName-Eigenschaft jeder DataTable innerhalb der DataSet und erstellt einen passenden Arbeitsblatt-Reiter. Spaltennamen aus der DataTable werden zur Kopfzeile in jedem Blatt. Diese Methode ist besonders nützlich für gespeicherte Prozeduren, die mehrere Ergebnismengen zurückgeben, da Sie die DataSet mit mehreren SqlDataAdapter-Aufrufen füllen und dann alles in einem Schritt exportieren können.

Für Anwendungen, die Excel-Dateien programmatisch erstellen mit benutzerdefinierten Formatierungen, können Sie nach dem Aufruf von LoadWorkSheetsFromDataSet weiterhin auf einzelne Arbeitsblätter zugreifen und Stile, Spaltenbreiten oder Formeln anwenden, bevor Sie speichern.

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

Bei Webanwendungen wird der Export normalerweise ausgelöst, wenn ein Benutzer auf eine Schaltfläche klickt. Das folgende ASP.NET Web Forms-Beispiel zeigt, wie Sie das Schaltflächenklickereignis behandeln, die Excel-Arbeitsmappe aus einer SQL-Abfrage erstellen und die Datei als Download mit Response.AddHeader an den Browser übertragen:

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";

        using SqlConnection connection = new SqlConnection(connectionString);
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet);

        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

        byte[] fileBytes = workBook.ToByteArray();
        string filename = "OrdersExport.xlsx";

        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=" + filename);
        Response.BinaryWrite(fileBytes);
        Response.End();
    }
}
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";

        using SqlConnection connection = new SqlConnection(connectionString);
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet);

        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

        byte[] fileBytes = workBook.ToByteArray();
        string filename = "OrdersExport.xlsx";

        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=" + filename);
        Response.BinaryWrite(fileBytes);
        Response.End();
    }
}
$vbLabelText   $csharpLabel

Beispiel Export-Schaltfläche

Wie exportiert man SQL-Daten nach Excel mit C# und IronXL: Bild 2 - Beispiel Schaltflächen-UI für den Export

Ausgabe

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

Die ToByteArray()-Methode konvertiert die gesamte Arbeitsmappe in ein In-Memory-Byte-Array, das Sie dann direkt in den HTTP-Antwort-Stream schreiben. Dadurch wird vermieden, dass eine temporäre Datei auf die Festplatte geschrieben wird. Im Gegensatz zu Microsoft Interop, das object misValue-Platzhalter und eine auf dem Server installierte Office-Lizenz erfordert, läuft IronXL vollständig im verwalteten Code ohne externe Abhängigkeiten.

Für ASP.NET Core- und Razor Pages-Projekte ersetzen Sie Response.BinaryWrite durch return File(fileBytes, contentType, filename) aus Ihrer Controlleraktion. Das ASP.NET Core Export zu Excel-Muster folgt dem gleichen Arbeitsbuch-zu-Byte-Array-Ansatz.

Wie fügen Sie formatierte und Spaltenüberschriften zu exportierten Excel-Dateien hinzu?

Rohe SQL-Exporte erfordern oft Präsentationsverbesserungen, bevor sie mit Endbenutzern geteilt werden. IronXL gibt Ihnen die Kontrolle über Zellstile, Spaltenbreiten und Zahlenformate, nachdem die Daten in das Arbeitsblatt geschrieben wurden. Das folgende Beispiel zeigt, wie Sie die Kopfzeilenzeile fett formatieren und die Spaltenbreiten automatisch anpassen:

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter("SELECT OrderID, CustomerID, OrderDate, Total FROM Orders", connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Orders");

// Write and style header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    workSheet[0, col].Style.Font.Bold = true;
    workSheet[0, col].Style.Font.Height = 12;
}

// Write data rows with type-aware value assignment
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        object value = dt.Rows[row][col];
        if (value is DateTime date)
            workSheet.SetCellValue(row + 1, col, date.ToString("yyyy-MM-dd"));
        else if (value is decimal || value is double || value is int)
            workSheet.SetCellValue(row + 1, col, Convert.ToDouble(value));
        else
            workSheet.SetCellValue(row + 1, col, value.ToString());
    }
}

workBook.SaveAs("FormattedOrdersExport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter("SELECT OrderID, CustomerID, OrderDate, Total FROM Orders", connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Orders");

// Write and style header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    workSheet[0, col].Style.Font.Bold = true;
    workSheet[0, col].Style.Font.Height = 12;
}

// Write data rows with type-aware value assignment
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        object value = dt.Rows[row][col];
        if (value is DateTime date)
            workSheet.SetCellValue(row + 1, col, date.ToString("yyyy-MM-dd"));
        else if (value is decimal || value is double || value is int)
            workSheet.SetCellValue(row + 1, col, Convert.ToDouble(value));
        else
            workSheet.SetCellValue(row + 1, col, value.ToString());
    }
}

workBook.SaveAs("FormattedOrdersExport.xlsx");
$vbLabelText   $csharpLabel

Das Stylen der Kopfzeilenzeile mit fettem Text und einer größeren Schriftart erleichtert das Lesen exportierter Berichte in Excel. Für Zahlenkolonnen wie Summen oder Zählungen ermöglicht das Übergeben eines double-Wertes anstelle eines Strings, dass die nativen Sortierungs- und Aggregationsfunktionen von Excel auf die exportierten Daten korrekt angewendet werden.

Sie können die gesamte Bandbreite an Formatierungsoptionen erkunden - einschließlich Zellrahmen, Hintergrundfarben und Zahlenformatmasken - in der IronXL-Zellenformatiierungsdokumentation.

Wie verwalten Sie große SQL-Datensätze effizient?

Für Tabellen mit Zehntausenden von Zeilen wird das Speichermanagement wichtig. Das Laden des gesamten Ergebnissatzes in ein DataTable funktioniert für die meisten Berichte gut, aber für sehr große Exporte können Sie Zeilen in Chargen verarbeiten oder SqlDataReader direkt verwenden.

Bei Exporten mit hohen Volumen berücksichtigen Sie folgende Strategien:

  • Mit SQL OFFSET/FETCH paginieren: Teilen Sie große Exporte in mehrere Arbeitsblätter auf, die jeweils eine Seite der Ergebnisse enthalten. Dies hält die Größen einzelner Blätter in Excel handhabbar.
  • Auf die Festplatte streamen: Rufen Sie workBook.SaveAs(filePath) nach jeder Charge auf, anstatt alles im Speicher mit ToByteArray() zu halten.
  • Ausgewählte Spalten begrenzen: Verwenden Sie explizite Spaltenlisten in Ihrer SELECT-Anweisung anstelle von SELECT *, um die Datenmenge, die vom SQL Server übertragen werden soll, zu reduzieren.

Für Anleitungen zum schnellsten Weg, eine DataTable nach Excel in C# zu exportieren, hat der IronXL-Blog einen speziellen Benchmark-Artikel, der verschiedene Ansätze und deren Speicherprofile vergleicht.

Die WorkBook.LoadWorkSheetsFromDataSet-Methode ist besonders effizient für mittelgroße DataSet-Objekte, da sie das Zeileniterieren intern handhabt. Für das spezielle Szenario DataTable nach Excel exportieren, reduziert diese Methode Boilerplate-Code und ist für Massenübertragungen optimiert.

Wie importieren Sie Daten wieder von Excel zurück in SQL Server?

Der Export-Workflow ist nur die Hälfte der Geschichte für viele Berichtsanwendungen. Sie müssen möglicherweise auch Benutzern erlauben, eine Vorlage herunterzuladen, Daten auszufüllen und diese erneut in SQL Server hochzuladen. IronXL macht diesen bidirektionalen Workflow einfach.

Um Excel-Daten in eine Datenbank zu importieren, laden Sie die hochgeladene Datei mit WorkBook.Load(filePath), iterieren über die Arbeitsblattzeilen und fügen jede Zeile mit einer parametrierten SqlCommand ein:

using IronXL;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("UploadedData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

string connectionString = "Data Source=localhost;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

// Skip header row, start at row index 1
for (int row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[row, 0].StringValue;
    int quantity = (int)sheet[row, 1].DoubleValue;
    decimal price = (decimal)sheet[row, 2].DoubleValue;

    using SqlCommand cmd = new SqlCommand(
        "INSERT INTO Products (Name, Quantity, Price) VALUES (@name, @qty, @price)",
        connection);
    cmd.Parameters.AddWithValue("@name", productName);
    cmd.Parameters.AddWithValue("@qty", quantity);
    cmd.Parameters.AddWithValue("@price", price);
    cmd.ExecuteNeinnQuery();
}
using IronXL;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("UploadedData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

string connectionString = "Data Source=localhost;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

// Skip header row, start at row index 1
for (int row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[row, 0].StringValue;
    int quantity = (int)sheet[row, 1].DoubleValue;
    decimal price = (decimal)sheet[row, 2].DoubleValue;

    using SqlCommand cmd = new SqlCommand(
        "INSERT INTO Products (Name, Quantity, Price) VALUES (@name, @qty, @price)",
        connection);
    cmd.Parameters.AddWithValue("@name", productName);
    cmd.Parameters.AddWithValue("@qty", quantity);
    cmd.Parameters.AddWithValue("@price", price);
    cmd.ExecuteNeinnQuery();
}
$vbLabelText   $csharpLabel

Parametrisierte Abfragen schützen vor SQL-Injection, wenn benutzerbereitgestellte Excel-Daten gelesen werden. Die SqlCommand-Dokumentation auf Microsoft Learn behandelt alle verfügbaren Überladungen und Parameterbindungsmuster. Überprüfen Sie immer Zellwerte, bevor Sie einfügen - prüfen Sie auf leere Zeichenfolgen, Zahlen außerhalb des Bereichs und unerwartete Datentypen, die in Ihrer SQL Server-Tabelle zu Einschränkungsverletzungen führen könnten.

Für die umgekehrte Richtung unterstützt IronXL auch das Lesen von CSV-Dateien in C# für Szenarien, in denen Ihre Datenquelle kommagetrennten Export statt .xlsx-Dateien liefert.

Wie vergleichen Sie IronXL mit anderen Exportansätzen?

Es gibt mehrere Ansätze, um SQL-Daten in .NET nach Excel zu exportieren. Diese Tabelle fasst die wichtigsten Kompromisse zusammen:

SQL-zu-Excel Exportansätze in .NET -- Funktionsvergleich
Ansatz Büro erforderlich DataSet-Unterstützung Formatierung Server-Sicherheit
IronXL Nein Ja (integriert) Volle Stile, Formeln Ja
Microsoft Interop Ja Manuelle Iteration Vollständig über COM Nein (COM-Server)
EPPlus Nein Manuelle Iteration Umfassend Ja
NPOI Nein Manuelle Iteration Gut Ja
CSV-Ausgabe Nein Handbuch Keine Ja

Microsoft Interop erfordert, dass Office auf dem Server installiert ist, und wird in serverseitigen Webanwendungen nicht unterstützt. IronXL, EPPlus und NPOI funktionieren alle ohne Office. Der Vorteil von IronXL ist seine erstklassige DataSet und DataTable Unterstützung durch LoadWorkSheetsFromDataSet, die den Exportcode auf wenige Zeilen reduziert im Vergleich zur manuellen Zeileniteration in anderen Bibliotheken.

Für einen detaillierten Vergleich, lesen Sie den Artikel zu Microsoft Office Interop-Alternativen.

Was sind Ihre nächsten Schritte?

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 starke Unterstützung für DataTable, DataSet und direkte Datenbankintegration. Ob Sie Konsolenanwendungen oder webbasierte Berichtssysteme mit Datei-Download-Möglichkeiten erstellen, IronXL bietet zuverlässige Excel-Dateigenerierung in allen .NET 10-Projekttypen.

Um auf dieser Grundlage weiter aufzubauen, erkunden Sie die folgenden verwandten Ressourcen:

Kaufen Sie eine Lizenz für Produktionseinsätze oder erkunden Sie weiterhin eine kostenlose Testversion, um die vollen Fähigkeiten dieser Excel-Bibliothek in Ihren .NET-Projekten zu testen.

Häufig gestellte Fragen

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

Mit IronXL und C# können Sie SQL-Daten nach Excel exportieren. Stellen Sie mithilfe von SqlConnection und SqlDataAdapter eine Verbindung zum SQL Server her, füllen Sie eine DataTable und erstellen Sie anschließend mit IronXL eine Arbeitsmappe, in die Sie die Datenzeilen einfügen. IronXL benötigt keine Microsoft Office-Installation.

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

Um IronXL zum Exportieren von SQL-Daten zu verwenden, benötigen Sie ein .NET Projekt (Framework, Core oder .NET 10+), Zugriff auf eine SQL Server-Datenbank und das IronXL NuGet Paket, das über Install-Package IronXl.Excel installiert wurde.

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 oder Server installiert sein muss.

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

Ja, IronXL verarbeitet große Datensätze effizient. Bei sehr großen Exporten empfiehlt sich die Paginierung mit SQL OFFSET/FETCH, das Speichern auf der Festplatte mit SaveAs anstelle von ToByteArray sowie die Beschränkung der ausgewählten Spalten in der SQL-Abfrage.

Wie exportiere ich mehrere SQL-Tabellen in separate Excel-Tabellenblätter?

Verwenden Sie WorkBook.LoadWorkSheetsFromDataSet mit einem DataSet, das durch mehrere SqlDataAdapter-Aufrufe gefüllt wurde. IronXL erstellt ein Arbeitsblatt pro DataTable und benennt die einzelnen Tabellenblätter anhand der DataTable.TableName-Eigenschaft.

Wie kann ich in ASP.NET einen Excel-Datei-Download auslösen?

Rufen Sie `workBook.ToByteArray()` auf, um die Datei als Bytes zu erhalten, und schreiben Sie sie anschließend mit den korrekten Headern `Content-Type` und `Content-Disposition` in die HTTP-Antwort. In ASP.NET Core geben Sie `File(fileBytes, contentType, filename)` von Ihrem Controller zurück.

Kann ich Excel-Daten mit IronXL wieder in SQL Server importieren?

Ja. Laden Sie die Excel-Datei mit WorkBook.Load, durchlaufen Sie die Zeilen des Arbeitsblatts mithilfe des Indexers von IronXL und fügen Sie jede Zeile mithilfe eines parametrisierten SqlCommand ein, um sich vor SQL-Injection zu schützen.

Wie schneidet IronXL im Vergleich zu Microsoft Interop beim SQL-Datenexport ab?

IronXL benötigt kein auf dem Server installiertes Office, läuft in verwaltetem Code und unterstützt den nativen DataSet-Export mit LoadWorkSheetsFromDataSet. Microsoft Interop erfordert einen COM-Server und kann in Webserverumgebungen nicht zuverlässig ausgeführt werden.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me