Wie man eine Excel-Datei in C# erstellt

How to Create an Excel File in C# (.NET Tutorial)

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL ist eine leistungsstarke C#- und .NET-Excel-Bibliothek, mit der Sie XLSX-Tabellen programmgesteuert erstellen, lesen und bearbeiten können – ohne Abhängigkeiten von Microsoft Office oder Interop. Sie unterstützt .NET 8, .NET 9, .NET Core und .NET Framework und läuft unter Windows, Linux, macOS, Azure und AWS.

Dieses Tutorial führt Sie Schritt für Schritt durch die Erstellung einer vollständigen Excel-Arbeitsmappe in C#: Festlegen von Zellwerten, Anwenden von Formatierungen, Hinzufügen von Formeln und Exportieren in XLSX, CSV und mehr – mit detaillierten Code-Beispielen.

Schnellstart: Erstellen einer Excel-Datei

Using IronXL, you can create a new Excel file in no time – simply choose a format, add a sheet, set any cell value, and save. Es ist der schnellste Weg, XLSX-Dateien mit intuitiven API-Aufrufen und ohne Interoperabilitätsprobleme zu erstellen.

  1. Installieren Sie IronXL mit NuGet Package Manager

    PM > Install-Package IronXL.Excel
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    WorkBook book = IronXl.WorkBook.Create(IronXl.ExcelFileFormat.XLSX); book.CreateWorkSheet("Sheet1")["A1"].Value = "Hello World"; book.SaveAs("MyFile.xlsx");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronXL in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer

Was ist IronXL und warum sollte man es für die Erstellung von Excel-Dateien verwenden?

IronXL ist eine intuitive C#- und VB-Excel-API, mit der Sie Excel-Tabellendateien in .NET mit außergewöhnlicher Leistung lesen, bearbeiten und erstellen können. Im Gegensatz zu herkömmlichen Ansätzen ist es nicht erforderlich, Microsoft Office zu installieren oder Excel Interop zu verwenden, was die Bereitstellung einfacher und zuverlässiger macht.

IronXL unterstützt .NET 9, .NET 8, .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS und Azure-Umgebungen vollständig.

IronXL-Funktionen

  • Persönliche Unterstützung direkt durch unser .NET-Entwicklungsteam
  • Schnelle Installation mit Microsoft Visual Studio
  • KOSTENLOS für die Entwicklung. Lizenzen von $999

Wie kann ich schnell eine Excel-Datei erstellen und speichern?

Installieren Sie IronXL über NuGet oder laden Sie die DLL direkt herunter. Die Klasse WorkBook ist Ihr Einstiegspunkt für alle Excel-Operationen, während die Klasse WorkSheet Methoden zur Bearbeitung einzelner Blätter bereitstellt – die vollständige Schritt-für-Schritt-Anleitung beginnt in Schritt 1 unten.


How Do I Install the IronXL C# Library?

Installieren Sie IronXL über den NuGet Package Manager in Visual Studio oder verwenden Sie die Package Manager Console:

Install-Package IronXL.Excel

Rufen Sie den NuGet-Paket-Manager über das Menü "Projekt" auf oder klicken Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer.

Visual Studio-Projektmenü mit der Option
Abbildung 3Aufrufen des NuGet-Paket-Managers über das Projektmenü

Kontextmenü des Solution Explorers mit der Option
Abbildung 4Kontextmenü bei Rechtsklick im Projektmappen-Explorer

Suchen Sie in der Paketliste nach IronXl.Excel und klicken Sie auf "Installieren".


NuGet Package Manager mit dem zur Installation bereiten IronXl.Excel-Paket
Abbildung 5Installation von IronXl.Excel über den NuGet Package Manager

Alternativ können Sie die IronXL-DLL direkt herunterladen und sie über den Projektmappen-Explorer > Referenzen > Durchsuchen nach IronXL.dll als Referenz zu Ihrem Projekt hinzufügen.

Download-Seite der IronXL-Website mit Installationsanleitung und Download-Button
Abbildung 6Laden Sie die IronXL-Bibliothek von der offiziellen Website herunter

{i:(IronXL erfordert keine Installation von Microsoft Office oder Excel Interop – es läuft auf jeder .NET-unterstützten Plattform, einschließlich Windows, Linux, macOS und Cloud-Umgebungen.)}


Wie richte ich mein .NET-Projekt ein?

IronXL funktioniert mit jedem .NET-Projekttyp – Konsolenanwendungen, ASP.NET-Webanwendungen, APIs oder Desktop-Tools. Das folgende Beispiel verwendet eine ASP.NET-Webanwendung, aber der Prozess ist bei allen Projektvorlagen identisch.

Befolgen Sie diese Schritte, um eine ASP.NET-Website zu erstellen:

  1. Öffnen Sie Visual Studio
  2. Klicken Sie auf "Datei" > "Neues Projekt"
  3. Wählen Sie "Web" unter "C#" in der Liste "Projekttyp" aus
  4. ASP.NET-Webanwendung auswählen


    Dialogfeld

    Abbildung 1Create new ASP.NET project

  5. Klicken Sie auf "OK"
  6. Web Forms-Vorlage auswählen

    Auswahl der ASP.NET-Projektvorlage mit der Option

    Abbildung 2Select Web Forms template

  7. Klicken Sie auf "OK"

Sobald Ihr Projekt fertig ist, installieren Sie IronXL, um mit der programmgesteuerten Erstellung von Excel-Dateien zu beginnen.


How Do I Create an Excel Workbook in C#?

Das Erstellen einer neuen Excel-Arbeitsmappe mit IronXL erfordert nur eine einzige Zeile Code:

using IronXL;

// Create workbook with XLSX format (recommended for modern Excel)
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

// Alternative: Create legacy XLS format for older Excel versions
WorkBook legacyWorkbook = WorkBook.Create(ExcelFileFormat.XLS);
using IronXL;

// Create workbook with XLSX format (recommended for modern Excel)
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

// Alternative: Create legacy XLS format for older Excel versions
WorkBook legacyWorkbook = WorkBook.Create(ExcelFileFormat.XLS);
Imports IronXL

' Create workbook with XLSX format (recommended for modern Excel)
Private workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)

' Alternative: Create legacy XLS format for older Excel versions
Private legacyWorkbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
$vbLabelText   $csharpLabel

Die Create-Methode unterstützt sowohl das XLS-Format (Excel 97–2003) als auch das XLSX-Format (Excel 2007+). XLSX wird für eine bessere Leistung und kleinere Dateigrößen empfohlen.

  • XLSX: Empfohlen für alle modernen Excel-Versionen (2007+) – kleinere Dateien, bessere Leistung
  • XLS: Älteres Format zur Kompatibilität mit Excel 97–2003

Wie füge ich meiner Arbeitsmappe ein Arbeitsblatt hinzu?

Das Hinzufügen von Arbeitsblättern ist ganz einfach:

// Create a worksheet with custom name for budget tracking
WorkSheet budgetSheet = workbook.CreateWorkSheet("2020 Budget");

// Add multiple worksheets for different purposes
WorkSheet salesSheet = workbook.CreateWorkSheet("Sales Data");
WorkSheet inventorySheet = workbook.CreateWorkSheet("Inventory");

// Access existing worksheet by name
WorkSheet existingSheet = workbook.GetWorkSheet("2020 Budget");
// Create a worksheet with custom name for budget tracking
WorkSheet budgetSheet = workbook.CreateWorkSheet("2020 Budget");

// Add multiple worksheets for different purposes
WorkSheet salesSheet = workbook.CreateWorkSheet("Sales Data");
WorkSheet inventorySheet = workbook.CreateWorkSheet("Inventory");

// Access existing worksheet by name
WorkSheet existingSheet = workbook.GetWorkSheet("2020 Budget");
' Create a worksheet with custom name for budget tracking
Dim budgetSheet As WorkSheet = workbook.CreateWorkSheet("2020 Budget")

' Add multiple worksheets for different purposes
Dim salesSheet As WorkSheet = workbook.CreateWorkSheet("Sales Data")
Dim inventorySheet As WorkSheet = workbook.CreateWorkSheet("Inventory")

' Access existing worksheet by name
Dim existingSheet As WorkSheet = workbook.GetWorkSheet("2020 Budget")
$vbLabelText   $csharpLabel

Eine Arbeitsmappe enthält ein oder mehrere Arbeitsblätter. Jedes Arbeitsblatt besteht aus Zeilen und Spalten, an deren Schnittpunkten sich Zellen befinden. Verwenden Sie die Methode CreateWorkSheet, um Ihrer Arbeitsmappe neue Blätter hinzuzufügen.

  • WorkBook.CreateWorkSheet(String): Fügt ein neues Blatt mit dem angegebenen Registerkartennamen hinzu
  • WorkSheet: Ruft ein vorhandenes Blatt anhand seines Namens ab
  • Blattnamen müssen innerhalb einer Arbeitsmappe eindeutig sein

Wie lege ich Zellwerte in Excel fest?

Wie kann ich Zellwerte manuell festlegen?

Das Festlegen einzelner Zellwerte erfolgt über eine intuitive, Excel-ähnliche Syntax:

// Set month names in first row for annual budget spreadsheet
workSheet["A1"].Value = "January";
workSheet["B1"].Value = "February";
workSheet["C1"].Value = "March";
workSheet["D1"].Value = "April";
workSheet["E1"].Value = "May";
workSheet["F1"].Value = "June";
workSheet["G1"].Value = "July";
workSheet["H1"].Value = "August";
workSheet["I1"].Value = "September";
workSheet["J1"].Value = "October";
workSheet["K1"].Value = "November";
workSheet["L1"].Value = "December";

// Set different data types - IronXL handles conversion automatically
workSheet["A2"].Value = 1500.50m;  // Decimal for currency
workSheet["A3"].Value = DateTime.Now;  // Date values
workSheet["A4"].Value = true;  // Boolean values
// Set month names in first row for annual budget spreadsheet
workSheet["A1"].Value = "January";
workSheet["B1"].Value = "February";
workSheet["C1"].Value = "March";
workSheet["D1"].Value = "April";
workSheet["E1"].Value = "May";
workSheet["F1"].Value = "June";
workSheet["G1"].Value = "July";
workSheet["H1"].Value = "August";
workSheet["I1"].Value = "September";
workSheet["J1"].Value = "October";
workSheet["K1"].Value = "November";
workSheet["L1"].Value = "December";

// Set different data types - IronXL handles conversion automatically
workSheet["A2"].Value = 1500.50m;  // Decimal for currency
workSheet["A3"].Value = DateTime.Now;  // Date values
workSheet["A4"].Value = true;  // Boolean values
' Set month names in first row for annual budget spreadsheet
workSheet("A1").Value = "January"
workSheet("B1").Value = "February"
workSheet("C1").Value = "March"
workSheet("D1").Value = "April"
workSheet("E1").Value = "May"
workSheet("F1").Value = "June"
workSheet("G1").Value = "July"
workSheet("H1").Value = "August"
workSheet("I1").Value = "September"
workSheet("J1").Value = "October"
workSheet("K1").Value = "November"
workSheet("L1").Value = "December"

' Set different data types - IronXL handles conversion automatically
workSheet("A2").Value = 1500.50D ' Decimal for currency
workSheet("A3").Value = DateTime.Now ' Date values
workSheet("A4").Value = True ' Boolean values
$vbLabelText   $csharpLabel

Die Eigenschaft Value akzeptiert verschiedene Datentypen, darunter Zeichenfolgen, Zahlen, Datumsangaben und Boolesche Werte. IronXL formatiert Zellen automatisch entsprechend dem Datentyp.

Wie lege ich Zellwerte dynamisch fest?

Die dynamische Wertfestlegung eignet sich perfekt für datengesteuerte Anwendungen:

// Initialize random number generator for sample data
Random r = new Random();

// Populate cells with random budget data for each month
for (int i = 2; i <= 11; i++)
{
    // Set different budget categories with increasing ranges
    workSheet[$"A{i}"].Value = r.Next(1, 1000);     // Office Supplies
    workSheet[$"B{i}"].Value = r.Next(1000, 2000);  // Utilities
    workSheet[$"C{i}"].Value = r.Next(2000, 3000);  // Rent
    workSheet[$"D{i}"].Value = r.Next(3000, 4000);  // Salaries
    workSheet[$"E{i}"].Value = r.Next(4000, 5000);  // Marketing
    workSheet[$"F{i}"].Value = r.Next(5000, 6000);  // IT Services
    workSheet[$"G{i}"].Value = r.Next(6000, 7000);  // Travel
    workSheet[$"H{i}"].Value = r.Next(7000, 8000);  // Training
    workSheet[$"I{i}"].Value = r.Next(8000, 9000);  // Insurance
    workSheet[$"J{i}"].Value = r.Next(9000, 10000); // Equipment
    workSheet[$"K{i}"].Value = r.Next(10000, 11000); // Research
    workSheet[$"L{i}"].Value = r.Next(11000, 12000); // Misc
}

// Alternative: Set range of cells with same value
workSheet["A13:L13"].Value = 0; // Initialize totals row
// Initialize random number generator for sample data
Random r = new Random();

// Populate cells with random budget data for each month
for (int i = 2; i <= 11; i++)
{
    // Set different budget categories with increasing ranges
    workSheet[$"A{i}"].Value = r.Next(1, 1000);     // Office Supplies
    workSheet[$"B{i}"].Value = r.Next(1000, 2000);  // Utilities
    workSheet[$"C{i}"].Value = r.Next(2000, 3000);  // Rent
    workSheet[$"D{i}"].Value = r.Next(3000, 4000);  // Salaries
    workSheet[$"E{i}"].Value = r.Next(4000, 5000);  // Marketing
    workSheet[$"F{i}"].Value = r.Next(5000, 6000);  // IT Services
    workSheet[$"G{i}"].Value = r.Next(6000, 7000);  // Travel
    workSheet[$"H{i}"].Value = r.Next(7000, 8000);  // Training
    workSheet[$"I{i}"].Value = r.Next(8000, 9000);  // Insurance
    workSheet[$"J{i}"].Value = r.Next(9000, 10000); // Equipment
    workSheet[$"K{i}"].Value = r.Next(10000, 11000); // Research
    workSheet[$"L{i}"].Value = r.Next(11000, 12000); // Misc
}

// Alternative: Set range of cells with same value
workSheet["A13:L13"].Value = 0; // Initialize totals row
' Initialize random number generator for sample data
Dim r As New Random()

' Populate cells with random budget data for each month
For i As Integer = 2 To 11
	' Set different budget categories with increasing ranges
	workSheet($"A{i}").Value = r.Next(1, 1000) ' Office Supplies
	workSheet($"B{i}").Value = r.Next(1000, 2000) ' Utilities
	workSheet($"C{i}").Value = r.Next(2000, 3000) ' Rent
	workSheet($"D{i}").Value = r.Next(3000, 4000) ' Salaries
	workSheet($"E{i}").Value = r.Next(4000, 5000) ' Marketing
	workSheet($"F{i}").Value = r.Next(5000, 6000) ' IT Services
	workSheet($"G{i}").Value = r.Next(6000, 7000) ' Travel
	workSheet($"H{i}").Value = r.Next(7000, 8000) ' Training
	workSheet($"I{i}").Value = r.Next(8000, 9000) ' Insurance
	workSheet($"J{i}").Value = r.Next(9000, 10000) ' Equipment
	workSheet($"K{i}").Value = r.Next(10000, 11000) ' Research
	workSheet($"L{i}").Value = r.Next(11000, 12000) ' Misc
Next i

' Alternative: Set range of cells with same value
workSheet("A13:L13").Value = 0 ' Initialize totals row
$vbLabelText   $csharpLabel

Die String-Interpolation ($"...") erleichtert das dynamische Verweisen auf Zellen. Der Item-Indexer unterstützt sowohl einzelne Zellen als auch Zellbereiche.

Wie fülle ich Excel aus einer Datenbank?

Das Laden von Daten aus Datenbanken in Excel ist eine häufige Anforderung:

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

// Database connection setup for retrieving sales data
string connectionString = @"Data Source=ServerName;Initial Catalog=SalesDB;Integrated Security=true";
string query = "SELECT ProductName, Quantity, UnitPrice, TotalSales FROM MonthlySales";

// Create DataSet to hold query results
DataSet salesData = new DataSet();

using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
    // Fill DataSet with sales information
    adapter.Fill(salesData);
}

// Write headers for database columns
workSheet["A1"].Value = "Product Name";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Unit Price";
workSheet["D1"].Value = "Total Sales";

// Apply header formatting
workSheet["A1:D1"].Style.Font.Bold = true;
workSheet["A1:D1"].Style.SetBackgroundColor("#4472C4");
workSheet["A1:D1"].Style.Font.FontColor = "#FFFFFF";

// Populate Excel with database records
DataTable salesTable = salesData.Tables[0];
for (int row = 0; row < salesTable.Rows.Co/unt; row++)
{
    int excelRow = row + 2; // Start from row 2 (after headers)

    workSheet[$"A{excelRow}"].Value = salesTable.Rows[row]["ProductName"].ToString();
    workSheet[$"B{excelRow}"].Value = Convert.ToInt32(salesTable.Rows[row]["Quantity"]);
    workSheet[$"C{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["UnitPrice"]);
    workSheet[$"D{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["TotalSales"]);

    // Format currency columns
    workSheet[$"C{excelRow}"].FormatString = "$#,##0.00";
    workSheet[$"D{excelRow}"].FormatString = "$#,##0.00";
}

// Add summary row with formulas
int summaryRow = salesTable.Rows.Co/unt + 2;
workSheet[$"A{summaryRow}"].Value = "TOTAL";
workSheet[$"B{summaryRow}"].Formula = $"=SUM(B2:B{summaryRow-1})";
workSheet[$"D{summaryRow}"].Formula = $"=SUM(D2:D{summaryRow-1})";
using System.Data;
using System.Data.SqlClient;
using IronXL;

// Database connection setup for retrieving sales data
string connectionString = @"Data Source=ServerName;Initial Catalog=SalesDB;Integrated Security=true";
string query = "SELECT ProductName, Quantity, UnitPrice, TotalSales FROM MonthlySales";

// Create DataSet to hold query results
DataSet salesData = new DataSet();

using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
    // Fill DataSet with sales information
    adapter.Fill(salesData);
}

// Write headers for database columns
workSheet["A1"].Value = "Product Name";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Unit Price";
workSheet["D1"].Value = "Total Sales";

// Apply header formatting
workSheet["A1:D1"].Style.Font.Bold = true;
workSheet["A1:D1"].Style.SetBackgroundColor("#4472C4");
workSheet["A1:D1"].Style.Font.FontColor = "#FFFFFF";

// Populate Excel with database records
DataTable salesTable = salesData.Tables[0];
for (int row = 0; row < salesTable.Rows.Co/unt; row++)
{
    int excelRow = row + 2; // Start from row 2 (after headers)

    workSheet[$"A{excelRow}"].Value = salesTable.Rows[row]["ProductName"].ToString();
    workSheet[$"B{excelRow}"].Value = Convert.ToInt32(salesTable.Rows[row]["Quantity"]);
    workSheet[$"C{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["UnitPrice"]);
    workSheet[$"D{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["TotalSales"]);

    // Format currency columns
    workSheet[$"C{excelRow}"].FormatString = "$#,##0.00";
    workSheet[$"D{excelRow}"].FormatString = "$#,##0.00";
}

// Add summary row with formulas
int summaryRow = salesTable.Rows.Co/unt + 2;
workSheet[$"A{summaryRow}"].Value = "TOTAL";
workSheet[$"B{summaryRow}"].Formula = $"=SUM(B2:B{summaryRow-1})";
workSheet[$"D{summaryRow}"].Formula = $"=SUM(D2:D{summaryRow-1})";
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL

' Database connection setup for retrieving sales data
Dim connectionString As String = "Data Source=ServerName;Initial Catalog=SalesDB;Integrated Security=true"
Dim query As String = "SELECT ProductName, Quantity, UnitPrice, TotalSales FROM MonthlySales"

' Create DataSet to hold query results
Dim salesData As New DataSet()

Using connection As New SqlConnection(connectionString)
    Using adapter As New SqlDataAdapter(query, connection)
        ' Fill DataSet with sales information
        adapter.Fill(salesData)
    End Using
End Using

' Write headers for database columns
workSheet("A1").Value = "Product Name"
workSheet("B1").Value = "Quantity"
workSheet("C1").Value = "Unit Price"
workSheet("D1").Value = "Total Sales"

' Apply header formatting
workSheet("A1:D1").Style.Font.Bold = True
workSheet("A1:D1").Style.SetBackgroundColor("#4472C4")
workSheet("A1:D1").Style.Font.FontColor = "#FFFFFF"

' Populate Excel with database records
Dim salesTable As DataTable = salesData.Tables(0)
For row As Integer = 0 To salesTable.Rows.Count - 1
    Dim excelRow As Integer = row + 2 ' Start from row 2 (after headers)

    workSheet($"A{excelRow}").Value = salesTable.Rows(row)("ProductName").ToString()
    workSheet($"B{excelRow}").Value = Convert.ToInt32(salesTable.Rows(row)("Quantity"))
    workSheet($"C{excelRow}").Value = Convert.ToDecimal(salesTable.Rows(row)("UnitPrice"))
    workSheet($"D{excelRow}").Value = Convert.ToDecimal(salesTable.Rows(row)("TotalSales"))

    ' Format currency columns
    workSheet($"C{excelRow}").FormatString = "$#,##0.00"
    workSheet($"D{excelRow}").FormatString = "$#,##0.00"
Next

' Add summary row with formulas
Dim summaryRow As Integer = salesTable.Rows.Count + 2
workSheet($"A{summaryRow}").Value = "TOTAL"
workSheet($"B{summaryRow}").Formula = $"=SUM(B2:B{summaryRow - 1})"
workSheet($"D{summaryRow}").Formula = $"=SUM(D2:D{summaryRow - 1})"
$vbLabelText   $csharpLabel

Dieses Beispiel veranschaulicht das Auslesen von Excel-Daten aus Datenbanken, das Anwenden von Formatierungen und die Verwendung von Formeln für Berechnungen. Die Eigenschaft NumberFormat ermöglicht eine benutzerdefinierte Zahlenformatierung, genau wie in Excel.


Wie wende ich Formatierungen auf Excel-Zellen an?

Wie kann ich Hintergrundfarben in Excel festlegen?

Die Formatierung der Zellen verbessert die Lesbarkeit und die optische ansprechende Darstellung:

// Set header row background to light gray using hex color
workSheet["A1:L1"].Style.SetBackgroundColor("#d3d3d3");

// Apply different colors for data categorization
workSheet["A2:A11"].Style.SetBackgroundColor("#E7F3FF"); // Light blue for January
workSheet["B2:B11"].Style.SetBackgroundColor("#FFF2CC"); // Light yellow for February

// Highlight important cells with bold colors
workSheet["L12"].Style.SetBackgroundColor("#FF0000"); // Red for totals
workSheet["L12"].Style.Font.FontColor = "#FFFFFF"; // White text

// Create alternating row colors for better readability
for (int row = 2; row <= 11; row++)
{
    if (row % 2 == 0)
    {
        workSheet[$"A{row}:L{row}"].Style.SetBackgroundColor("#F2F2F2");
    }
}
// Set header row background to light gray using hex color
workSheet["A1:L1"].Style.SetBackgroundColor("#d3d3d3");

// Apply different colors for data categorization
workSheet["A2:A11"].Style.SetBackgroundColor("#E7F3FF"); // Light blue for January
workSheet["B2:B11"].Style.SetBackgroundColor("#FFF2CC"); // Light yellow for February

// Highlight important cells with bold colors
workSheet["L12"].Style.SetBackgroundColor("#FF0000"); // Red for totals
workSheet["L12"].Style.Font.FontColor = "#FFFFFF"; // White text

// Create alternating row colors for better readability
for (int row = 2; row <= 11; row++)
{
    if (row % 2 == 0)
    {
        workSheet[$"A{row}:L{row}"].Style.SetBackgroundColor("#F2F2F2");
    }
}
' Set header row background to light gray using hex color
workSheet("A1:L1").Style.SetBackgroundColor("#d3d3d3")

' Apply different colors for data categorization
workSheet("A2:A11").Style.SetBackgroundColor("#E7F3FF") ' Light blue for January
workSheet("B2:B11").Style.SetBackgroundColor("#FFF2CC") ' Light yellow for February

' Highlight important cells with bold colors
workSheet("L12").Style.SetBackgroundColor("#FF0000") ' Red for totals
workSheet("L12").Style.Font.FontColor = "#FFFFFF" ' White text

' Create alternating row colors for better readability
For row As Integer = 2 To 11
	If row Mod 2 = 0 Then
		workSheet($"A{row}:L{row}").Style.SetBackgroundColor("#F2F2F2")
	End If
Next row
$vbLabelText   $csharpLabel

Die Methode SetBackgroundColor akzeptiert Hex-Farbcodes. Kombinieren Sie Hintergrundfarben mit Schriftfarben, um professionell aussehende Tabellen zu erstellen.

Wie erstelle ich Rahmen in Excel?

Rahmen helfen dabei, Datenbereiche abzugrenzen und die Struktur zu verbessern:

using IronXL;
using IronXl.Styles;

// Create header border - thick bottom line to separate from data
workSheet["A1:L1"].Style.TopBorder.SetColor("#000000");
workSheet["A1:L1"].Style.TopBorder.Type = BorderType.Thick;
workSheet["A1:L1"].Style.BottomBorder.SetColor("#000000");
workSheet["A1:L1"].Style.BottomBorder.Type = BorderType.Thick;

// Add right border to last column
workSheet["L2:L11"].Style.RightBorder.SetColor("#000000");
workSheet["L2:L11"].Style.RightBorder.Type = BorderType.Medium;

// Create bottom border for data area
workSheet["A11:L11"].Style.BottomBorder.SetColor("#000000");
workSheet["A11:L11"].Style.BottomBorder.Type = BorderType.Medium;

// Apply complete border around summary section
var summaryRange = workSheet["A12:L12"];
summaryRange.Style.TopBorder.Type = BorderType.Double;
summaryRange.Style.BottomBorder.Type = BorderType.Double;
summaryRange.Style.LeftBorder.Type = BorderType.Thin;
summaryRange.Style.RightBorder.Type = BorderType.Thin;
summaryRange.Style.SetBorderColor("#0070C0"); // Blue borders
using IronXL;
using IronXl.Styles;

// Create header border - thick bottom line to separate from data
workSheet["A1:L1"].Style.TopBorder.SetColor("#000000");
workSheet["A1:L1"].Style.TopBorder.Type = BorderType.Thick;
workSheet["A1:L1"].Style.BottomBorder.SetColor("#000000");
workSheet["A1:L1"].Style.BottomBorder.Type = BorderType.Thick;

// Add right border to last column
workSheet["L2:L11"].Style.RightBorder.SetColor("#000000");
workSheet["L2:L11"].Style.RightBorder.Type = BorderType.Medium;

// Create bottom border for data area
workSheet["A11:L11"].Style.BottomBorder.SetColor("#000000");
workSheet["A11:L11"].Style.BottomBorder.Type = BorderType.Medium;

// Apply complete border around summary section
var summaryRange = workSheet["A12:L12"];
summaryRange.Style.TopBorder.Type = BorderType.Double;
summaryRange.Style.BottomBorder.Type = BorderType.Double;
summaryRange.Style.LeftBorder.Type = BorderType.Thin;
summaryRange.Style.RightBorder.Type = BorderType.Thin;
summaryRange.Style.SetBorderColor("#0070C0"); // Blue borders
Imports IronXL
Imports IronXl.Styles

' Create header border - thick bottom line to separate from data
workSheet("A1:L1").Style.TopBorder.SetColor("#000000")
workSheet("A1:L1").Style.TopBorder.Type = BorderType.Thick
workSheet("A1:L1").Style.BottomBorder.SetColor("#000000")
workSheet("A1:L1").Style.BottomBorder.Type = BorderType.Thick

' Add right border to last column
workSheet("L2:L11").Style.RightBorder.SetColor("#000000")
workSheet("L2:L11").Style.RightBorder.Type = BorderType.Medium

' Create bottom border for data area
workSheet("A11:L11").Style.BottomBorder.SetColor("#000000")
workSheet("A11:L11").Style.BottomBorder.Type = BorderType.Medium

' Apply complete border around summary section
Dim summaryRange = workSheet("A12:L12")
summaryRange.Style.TopBorder.Type = BorderType.Double
summaryRange.Style.BottomBorder.Type = BorderType.Double
summaryRange.Style.LeftBorder.Type = BorderType.Thin
summaryRange.Style.RightBorder.Type = BorderType.Thin
summaryRange.Style.SetBorderColor("#0070C0") ' Blue borders
$vbLabelText   $csharpLabel

IronXL unterstützt verschiedene Rahmentypen, darunter "Thin", "Medium", "Thick", "Double", "Dotted" und "Dashed". Jede Rahmenseite kann unabhängig gestaltet werden.


How Do I Use Excel Formulas in C#?

IronXL bietet leistungsstarke Formelunterstützung mit automatischer Berechnung:

// Use built-in aggregation functions for ranges
decimal sum = workSheet["A2:A11"].Sum();
decimal avg = workSheet["B2:B11"].Avg();
decimal max = workSheet["C2:C11"].Max();
decimal min = workSheet["D2:D11"].Min();

// Assign calculated values to cells
workSheet["A12"].Value = sum;
workSheet["B12"].Value = avg;
workSheet["C12"].Value = max;
workSheet["D12"].Value = min;

// Or use Excel formulas directly
workSheet["A12"].Formula = "=SUM(A2:A11)";
workSheet["B12"].Formula = "=AVERAGE(B2:B11)";
workSheet["C12"].Formula = "=MAX(C2:C11)";
workSheet["D12"].Formula = "=MIN(D2:D11)";

// Complex formulas with multiple functions
workSheet["E12"].Formula = "=IF(SUM(E2:E11)>50000,\"Over Budget\",\"On Track\")";
workSheet["F12"].Formula = "=SUMIF(F2:F11,\">5000\")";

// Percentage calculations
workSheet["G12"].Formula = "=G11/SUM(G2:G11)*100";
workSheet["G12"].FormatString = "0.00%";

// Ensure all formulas calculate
workSheet.EvaluateAll();
// Use built-in aggregation functions for ranges
decimal sum = workSheet["A2:A11"].Sum();
decimal avg = workSheet["B2:B11"].Avg();
decimal max = workSheet["C2:C11"].Max();
decimal min = workSheet["D2:D11"].Min();

// Assign calculated values to cells
workSheet["A12"].Value = sum;
workSheet["B12"].Value = avg;
workSheet["C12"].Value = max;
workSheet["D12"].Value = min;

// Or use Excel formulas directly
workSheet["A12"].Formula = "=SUM(A2:A11)";
workSheet["B12"].Formula = "=AVERAGE(B2:B11)";
workSheet["C12"].Formula = "=MAX(C2:C11)";
workSheet["D12"].Formula = "=MIN(D2:D11)";

// Complex formulas with multiple functions
workSheet["E12"].Formula = "=IF(SUM(E2:E11)>50000,\"Over Budget\",\"On Track\")";
workSheet["F12"].Formula = "=SUMIF(F2:F11,\">5000\")";

// Percentage calculations
workSheet["G12"].Formula = "=G11/SUM(G2:G11)*100";
workSheet["G12"].FormatString = "0.00%";

// Ensure all formulas calculate
workSheet.EvaluateAll();
' Use built-in aggregation functions for ranges
Dim sum As Decimal = workSheet("A2:A11").Sum()
Dim avg As Decimal = workSheet("B2:B11").Avg()
Dim max As Decimal = workSheet("C2:C11").Max()
Dim min As Decimal = workSheet("D2:D11").Min()

' Assign calculated values to cells
workSheet("A12").Value = sum
workSheet("B12").Value = avg
workSheet("C12").Value = max
workSheet("D12").Value = min

' Or use Excel formulas directly
workSheet("A12").Formula = "=SUM(A2:A11)"
workSheet("B12").Formula = "=AVERAGE(B2:B11)"
workSheet("C12").Formula = "=MAX(C2:C11)"
workSheet("D12").Formula = "=MIN(D2:D11)"

' Complex formulas with multiple functions
workSheet("E12").Formula = "=IF(SUM(E2:E11)>50000,""Over Budget"",""On Track"")"
workSheet("F12").Formula = "=SUMIF(F2:F11,"">5000"")"

' Percentage calculations
workSheet("G12").Formula = "=G11/SUM(G2:G11)*100"
workSheet("G12").FormatString = "0.00%"

' Ensure all formulas calculate
workSheet.EvaluateAll()
$vbLabelText   $csharpLabel

Die Klasse Range bietet Methoden wie Sum, Average, Max und Min für schnelle Berechnungen. Verwenden Sie für komplexere Szenarien die Eigenschaft Formula, um Excel-Formeln direkt festzulegen.

{t:(Verwenden Sie bei der Arbeit mit Bereichen vorzugsweise die in IronXL integrierten Methoden .Sum(), .Avg(), .Max() und .Min() anstelle von rohen Formelstrings – sie sind typsicher und vermeiden Syntaxfehler in Formeln.)}


Wie lege ich Arbeitsblatt- und PRINT-Eigenschaften fest?

Using IronXL, protect individual worksheets, freeze rows and columns, and set printing format options.

Wie kann ich die Eigenschaften eines Arbeitsblatts konfigurieren?

Arbeitsblätter schützen und Anzeigeoptionen steuern:

// Protect worksheet with password to prevent unauthorized changes
workSheet.ProtectSheet("SecurePassword123");

// Freeze panes to keep headers visible while scrolling
workSheet.CreateFreezePane(0, 1); // Freeze first row
// workSheet.CreateFreezePane(1, 1); // Freeze first row and column

// Set worksheet visibility options
workSheet.ViewState = WorkSheetViewState.Visible; // or Hidden, VeryHidden

// Configure gridlines and headers
workSheet.ShowGridLines = true;
workSheet.ShowRowColHeaders = true;

// Set zoom level for better viewing
workSheet.Zoom = 85; // 85% zoom
// Protect worksheet with password to prevent unauthorized changes
workSheet.ProtectSheet("SecurePassword123");

// Freeze panes to keep headers visible while scrolling
workSheet.CreateFreezePane(0, 1); // Freeze first row
// workSheet.CreateFreezePane(1, 1); // Freeze first row and column

// Set worksheet visibility options
workSheet.ViewState = WorkSheetViewState.Visible; // or Hidden, VeryHidden

// Configure gridlines and headers
workSheet.ShowGridLines = true;
workSheet.ShowRowColHeaders = true;

// Set zoom level for better viewing
workSheet.Zoom = 85; // 85% zoom
' Protect worksheet with password to prevent unauthorized changes
workSheet.ProtectSheet("SecurePassword123")

' Freeze panes to keep headers visible while scrolling
workSheet.CreateFreezePane(0, 1) ' Freeze first row
' workSheet.CreateFreezePane(1, 1); // Freeze first row and column

' Set worksheet visibility options
workSheet.ViewState = WorkSheetViewState.Visible ' or Hidden, VeryHidden

' Configure gridlines and headers
workSheet.ShowGridLines = True
workSheet.ShowRowColHeaders = True

' Set zoom level for better viewing
workSheet.Zoom = 85 ' 85% zoom
$vbLabelText   $csharpLabel

Der Arbeitsblattschutz verhindert versehentliche Änderungen, während das Einfrieren von Bereichen dafür sorgt, dass wichtige Zeilen oder Spalten beim Scrollen sichtbar bleiben.

Frozen Panes
Abbildung 7Die fixierte Kopfzeile bleibt beim Scrollen sichtbar

Excel-Schutzdialog, der ein Passwort zum Ändern eines geschützten Arbeitsblatts erfordert
Abbildung 8Passwortschutz verhindert unbefugte Bearbeitungen

Wie konfiguriere ich Seiten- und PRINT-Einstellungen?

Richten Sie professionelle Druckoptionen über IronXL ein:

using IronXl.Printing;

// Define print area to exclude empty cells
workSheet.SetPrintArea("A1:L12");

// Configure page orientation for wide data
workSheet.PrintSetup.PrintOrientation = PrintOrientation.Landscape;

// Set paper size for standard printing
workSheet.PrintSetup.PaperSize = PaperSize.A4;

// Adjust margins for better layout (in inches)
workSheet.PrintSetup.LeftMargin = 0.5;
workSheet.PrintSetup.RightMargin = 0.5;
workSheet.PrintSetup.TopMargin = 0.75;
workSheet.PrintSetup.BottomMargin = 0.75;

// Configure header and footer
workSheet.PrintSetup.HeaderMargin = 0.3;
workSheet.PrintSetup.FooterMargin = 0.3;

// Scale to fit on one page
workSheet.PrintSetup.FitToPage = true;
workSheet.PrintSetup.FitToHeight = 1;
workSheet.PrintSetup.FitToWidth = 1;

// Add print headers/footers
workSheet.Header.Center = "Monthly Budget Report";
workSheet.Footer.Left = DateTime.Now.ToShortDateString();
workSheet.Footer.Right = "Page &P of &N"; // Page numbering
using IronXl.Printing;

// Define print area to exclude empty cells
workSheet.SetPrintArea("A1:L12");

// Configure page orientation for wide data
workSheet.PrintSetup.PrintOrientation = PrintOrientation.Landscape;

// Set paper size for standard printing
workSheet.PrintSetup.PaperSize = PaperSize.A4;

// Adjust margins for better layout (in inches)
workSheet.PrintSetup.LeftMargin = 0.5;
workSheet.PrintSetup.RightMargin = 0.5;
workSheet.PrintSetup.TopMargin = 0.75;
workSheet.PrintSetup.BottomMargin = 0.75;

// Configure header and footer
workSheet.PrintSetup.HeaderMargin = 0.3;
workSheet.PrintSetup.FooterMargin = 0.3;

// Scale to fit on one page
workSheet.PrintSetup.FitToPage = true;
workSheet.PrintSetup.FitToHeight = 1;
workSheet.PrintSetup.FitToWidth = 1;

// Add print headers/footers
workSheet.Header.Center = "Monthly Budget Report";
workSheet.Footer.Left = DateTime.Now.ToShortDateString();
workSheet.Footer.Right = "Page &P of &N"; // Page numbering
Imports IronXl.Printing

' Define print area to exclude empty cells
workSheet.SetPrintArea("A1:L12")

' Configure page orientation for wide data
workSheet.PrintSetup.PrintOrientation = PrintOrientation.Landscape

' Set paper size for standard printing
workSheet.PrintSetup.PaperSize = PaperSize.A4

' Adjust margins for better layout (in inches)
workSheet.PrintSetup.LeftMargin = 0.5
workSheet.PrintSetup.RightMargin = 0.5
workSheet.PrintSetup.TopMargin = 0.75
workSheet.PrintSetup.BottomMargin = 0.75

' Configure header and footer
workSheet.PrintSetup.HeaderMargin = 0.3
workSheet.PrintSetup.FooterMargin = 0.3

' Scale to fit on one page
workSheet.PrintSetup.FitToPage = True
workSheet.PrintSetup.FitToHeight = 1
workSheet.PrintSetup.FitToWidth = 1

' Add print headers/footers
workSheet.Header.Center = "Monthly Budget Report"
workSheet.Footer.Left = DateTime.Now.ToShortDateString()
workSheet.Footer.Right = "Page &P of &N" ' Page numbering
$vbLabelText   $csharpLabel

Die Klasse IPrintSetup bietet umfassende Optionen für die Druckkonfiguration, die den Druckeinstellungen von Excel entsprechen.

Excel-PRINT-Vorschau mit Einstellungen für Querformat und Papiergröße A4
Abbildung 9Druckvorschau im Querformat mit benutzerdefinierten Rändern


Wie speichere ich meine Excel-Arbeitsmappe?

Speichern Sie Ihre Arbeitsmappe in verschiedenen Formaten:

// Save as XLSX (recommended for modern Excel)
workBook.SaveAs("Budget.xlsx");

// Save as XLS for legacy compatibility
workBook.SaveAs("Budget.xls");

// Save as CSV for data exchange
workBook.SaveAsCsv("Budget.csv");

// Save as JSON for web applications
workBook.SaveAsJson("Budget.json");

// Save to stream for web downloads or cloud storage
using (var stream = new MemoryStream())
{
    workBook.SaveAs(stream);
    byte[] excelData = stream.ToArray();
    // Send to client or save to cloud
}

// Save with specific encoding for international characters
workBook.SaveAsCsv("Budget_UTF8.csv", System.Text.Encoding.UTF8);
// Save as XLSX (recommended for modern Excel)
workBook.SaveAs("Budget.xlsx");

// Save as XLS for legacy compatibility
workBook.SaveAs("Budget.xls");

// Save as CSV for data exchange
workBook.SaveAsCsv("Budget.csv");

// Save as JSON for web applications
workBook.SaveAsJson("Budget.json");

// Save to stream for web downloads or cloud storage
using (var stream = new MemoryStream())
{
    workBook.SaveAs(stream);
    byte[] excelData = stream.ToArray();
    // Send to client or save to cloud
}

// Save with specific encoding for international characters
workBook.SaveAsCsv("Budget_UTF8.csv", System.Text.Encoding.UTF8);
' Save as XLSX (recommended for modern Excel)
workBook.SaveAs("Budget.xlsx")

' Save as XLS for legacy compatibility
workBook.SaveAs("Budget.xls")

' Save as CSV for data exchange
workBook.SaveAsCsv("Budget.csv")

' Save as JSON for web applications
workBook.SaveAsJson("Budget.json")

' Save to stream for web downloads or cloud storage
Using stream = New MemoryStream()
	workBook.SaveAs(stream)
	Dim excelData() As Byte = stream.ToArray()
	' Send to client or save to cloud
End Using

' Save with specific encoding for international characters
workBook.SaveAsCsv("Budget_UTF8.csv", System.Text.Encoding.UTF8)
$vbLabelText   $csharpLabel

IronXL unterstützt mehrere Exportformate, darunter XLSX, XLS, CSV, TSV und JSON. Die Methode Save ermittelt das Format automatisch anhand der Dateiendung.

  • XLSX / XLS: Vollständiges Excel-Format mit Formatierungen, Formeln und mehreren Arbeitsblättern
  • CSV: Klartext für den Datenaustausch – exportiert ein Blatt pro Datei
  • JSON: Strukturierte Ausgabe für Web-APIs und Datenpipelines
  • Stream: Für die Ausgabe im Arbeitsspeicher – nützlich für Web-Downloads oder Cloud-Speicher

Zusammenfassung

Dieses Tutorial zeigte, wie man mit IronXL Excel-Dateien in C# ohne Abhängigkeiten von Microsoft Office erstellt. Sie haben grundlegende Excel-Funktionen kennengelernt, darunter das Erstellen von Arbeitsmappen, das Bearbeiten von Zellen, Formatierungen, die Verwendung von Formeln und verschiedene Speicheroptionen. Die intuitive API von IronXL macht die Excel-Automatisierung for .NET-Entwickler zum Kinderspiel.

Für erweiterte Funktionen können Sie das Zusammenführen von Zellen und das Erstellen von Diagrammen erkunden. Sind Sie bereit, IronXL in der Produktion einzusetzen? Starten Sie Ihre kostenlose Testversion oder sehen Sie sich die Lizenzoptionen an.

Wie geht es weiter?

Da Sie nun Excel-Dateien in C# erstellen können, entdecken Sie diese verwandten IronXL-Funktionen:

WorkBook``WorkSheet``WorkBook.Create``CreateWorkSheet``CreateWorkSheet("name")``GetWorkSheet("name")``Cell.Value``$"A{i}"``Range``FormatString``Style.SetBackgroundColor``Range``Sum()``Avg()``Max()``Min()``Formula``PrintSetup``SaveAs

Häufig gestellte Fragen

Wie kann ich Excel-Dateien in C# ohne Interop erstellen?

Sie können Excel-Dateien ohne Interop mit IronXL erstellen, das eine einfache API bereitstellt: WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX). Dieser Ansatz funktioniert auf jeder .NET-Plattform ohne die Installation von Microsoft Office.

Welche Plattformen werden bei der Erstellung von Excel-Dateien mit C# unterstützt?

IronXL unterstützt die Erstellung von Excel-Dateien auf .NET 10, .NET 9, .NET 8, .NET Core, .NET Framework 4.6.2+, ausgeführt in Windows-, macOS-, Linux-, Docker-, Azure- und AWS-Umgebungen.

Wie installiere ich eine C#-Bibliothek für die Excel-Erstellung?

Installieren Sie IronXL über den NuGet-Paket-Manager in Visual Studio, verwenden Sie den Befehl PM> Install-Package IronXL.Excel oder laden Sie es direkt von nuget.org herunter.

Wie erstelle ich programmgesteuert ein neues Excel-Arbeitsbuch?

Erstellen Sie ein Arbeitsbuch mit IronXL mit WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX) und fügen Sie dann Arbeitsblätter hinzu: workbook.CreateWorkSheet("SheetName").

Wie kann ich Zellwerte in einem Excel-Arbeitsblatt mit C# festlegen?

Legen Sie Zellwerte in IronXL mit intuitiver Syntax fest: worksheet["A1"].Value = "Hello World" oder setzen Sie Bereiche: worksheet["A1:A10"].Value = 100.

Kann ich Zellen in Excel programmgesteuert formatieren?

Ja, IronXL unterstützt umfassende Formatierung einschließlich Hintergrundfarben (cell.Style.SetBackgroundColor("#FF0000")), Rahmen, Schriftarten und Zahlenformate.

Wie verwende ich Excel-Formeln in C#?

Wenden Sie Formeln mit der Formula-Eigenschaft von IronXL an: worksheet["A1"].Formula = "=SUM(B1:B10)", oder verwenden Sie eingebaute Methoden wie range.Sum(), range.Avg().

Wie kann ich ein Excel-Arbeitsblatt mit einem Passwort schützen?

Schützen Sie Arbeitsblätter in IronXL mit worksheet.ProtectSheet("YourPassword"), um unbefugte Änderungen zu verhindern.

Wie konfiguriere ich Druckeinstellungen für Excel-Dateien?

Lege Druckeinstellungen mit IronXLs PrintSetup fest: worksheet.PrintSetup.PrintOrientation = PrintOrientation.Landscape und worksheet.SetPrintArea("A1:Z100").

Wie speichere ich ein Excel-Arbeitsbuch in verschiedenen Formaten?

Speichern Sie Arbeitsmappen mit der SaveAs-Methode von IronXL: workbook.SaveAs("file.xlsx") für XLSX, oder verwenden Sie SaveAsCsv(), SaveAsJson() für andere Formate.

Wie befülle ich ein Excel-Blatt mit Daten aus einer Datenbank?

Verwenden Sie IronXL, um Arbeitsblätter zu befüllen, indem Sie Daten aus einer Datenbank abrufen und diese in Zellen mit Methoden wie worksheet["A1"].Value = dataFromDatabase setzen.

Wie kann ich eingefrorene Fenster in einem Excel-Arbeitsblatt mit C# implementieren?

Frieren Sie Fenster in Arbeitsblättern ein mit IronXL: worksheet.FreezePanes(1, 1), um die oberste Reihe und die linke Spalte für eine einfachere Navigation zu sperren.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 2,041,325 | Version: 2026.6 just released
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronXL.Excel
Führen Sie ein Beispiel aus und sehen Sie zu, wie Ihre Daten zu einer Tabellenkalkulation werden.