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-Tabellenkalkulationen programmatisch erstellen, lesen und bearbeiten können – ohne Abhängigkeiten von Microsoft Office oder Interop. Es unterstützt .NET 8, .NET 9, .NET Core, .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 kompletten Excel-Arbeitsmappe in C#: Festlegen von Zellwerten, Anwenden von Formatierungen, Hinzufügen von Formeln und Exportieren in XLSX, CSV und weitere Formate – mit Codebeispielen, die Ihnen Schritt für Schritt alles zeigen.

Schnellstart: Erstellen einer Excel-Datei

Verwenden Sie IronXL, um schnell eine neue Excel-Datei zu erstellen - Format wählen, Blatt hinzufügen, Zellwert festlegen und speichern. Es ist der schnellste Weg, XLSX-Dateien mit intuitiven API-Aufrufen und ohne Interoperabilitätsprobleme zu generieren.

  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 zur Erstellung von Excel-Dateien verwenden?

IronXL ist eine intuitive C# & VB Excel API, die es Ihnen ermöglicht, Excel-Tabellendateien in .NET mit außergewöhnlicher Leistung zu lesen, bearbeiten und erstellen. Im Gegensatz zu herkömmlichen Ansätzen muss Microsoft Office nicht installiert oder Excel Interop verwendet werden, was die Bereitstellung einfacher und zuverlässiger macht.

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

IronXL Features

  • Menschlicher Support direkt von unserem .NET-Entwicklungsteam
  • Schnelle Installation mit Microsoft Visual Studio
  • KOSTENLOS für die Entwicklung. Lizenzen von $799

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 Tabellenblä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-Paketmanager in Visual Studio oder verwenden Sie die Paket-Manager-Konsole:

Install-Package IronXl.Excel

Sie können über das Menü "Projekt" oder per Rechtsklick auf Ihr Projekt im Projektmappen-Explorer auf den NuGet-Paket-Manager zugreifen.

Visual Studio-Projektmenü mit der Option NuGet-Pakete verwalten

**Abbildung 3** - *Zugang zum NuGet Package Manager über das Projektmenü*

Kontextmenü im Projektmappen-Explorer mit der Option NuGet-Pakete verwalten

**Abbildung 4** - *Rechtsklick-Kontextmenü im Solution Explorer*


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


NuGet Package Manager zeigt IronXl.Excel als installationsbereites Paket an

**Abbildung 5** - *Installation von IronXl.Excel über NuGet Package Manager*

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

IronXL-Website: Herunterladen-Seite mit Installationsanweisungen und Herunterladen-Schaltfläche

**Abbildung 6** - *Laden Sie die IronXL-Bibliothek von der offiziellen Website herunter*

{i:(IronXL benötigt keine Installation von Microsoft Office oder Excel Interop – es läuft auf jeder .NET-fähigen 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 untenstehende Beispiel verwendet eine ASP.NET-Webanwendung, aber der Prozess ist bei allen Projektvorlagen derselbe.

Folgen Sie diesen Schritten, 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 Visual C# in der Projekttypenliste
  4. Wählen Sie 'ASP.NET-Webanwendung'


    Visual Studio Dialogfeld

    Abbildung 1Create new ASP.NET project

  5. Klicken Sie 'OK'
  6. Wählen Sie das Webforms-Template

    Auswahl einer ASP.NET-Projektvorlage mit der Option Web Forms

    Abbildung 2Select Web Forms template

  7. Klicken Sie 'OK'

Mit Ihrem Projekt bereit, installieren Sie IronXL, um Excel-Dateien programmatisch zu erstellen.


How Do I Create an Excel Workbook in C#?

Das Erstellen einer neuen Excel-Arbeitsmappe mit IronXL erfordert nur eine 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);
$vbLabelText   $csharpLabel

Die Methode WorkBook.Create 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 ein Arbeitsblatt zu meiner Arbeitsmappe hinzu?

Das Hinzufügen von Arbeitsblättern ist 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");
$vbLabelText   $csharpLabel

Eine Arbeitsmappe enthält ein oder mehrere Arbeitsblätter. Jedes Arbeitsblatt besteht aus Zeilen und Spalten, mit Zellen an ihren Schnittstellen. Verwenden Sie die Methode CreateWorkSheet , um neue Tabellenblätter zu Ihrer Arbeitsmappe hinzuzufügen.

  • CreateWorkSheet("name") : Fügt ein neues Tabellenblatt mit dem angegebenen Tabellennamen hinzu
  • GetWorkSheet("name") : Ruft ein vorhandenes Tabellenblatt anhand des Namens ab
  • Die Tabellennamen müssen innerhalb einer Arbeitsmappe eindeutig sein.

Wie lege ich Zellwerte in Excel fest?

Wie kann ich Zellenwerte manuell festlegen?

Das Festlegen einzelner Zellwerte verwendet 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
$vbLabelText   $csharpLabel

Die Cell.Value-Eigenschaft akzeptiert verschiedene Datentypen, darunter Zeichenketten, Zahlen, Datumsangaben und boolesche Werte. IronXL formatiert Zellen automatisch basierend auf dem Datentyp.

Wie kann ich Zellenwerte dynamisch festlegen?

Das dynamische Setzen von Werten ist ideal 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
$vbLabelText   $csharpLabel

Durch String-Interpolation ($"A{i}") lassen sich Zellen einfach dynamisch referenzieren. Der Indexer Range unterstützt sowohl einzelne Zellen als auch Bereiche.

Wie kann ich Daten aus einer Datenbank in eine Excel-Tabelle übertragen?

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.Count; 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.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})";
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.Count; 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.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 zeigt das Lesen von Excel-Daten aus Datenbanken, das Anwenden von Formatierungen und die Verwendung von Formeln für Berechnungen. Die Eigenschaft FormatString ermöglicht die benutzerdefinierte Zahlenformatierung, genau wie in Excel.


Wie formatiere ich Excel-Zellen?

Wie kann ich in Excel Hintergrundfarben festlegen?

Zellstilierung verbessert die Lesbarkeit und optische Attraktivität:

// 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");
    }
}
$vbLabelText   $csharpLabel

Die Methode Style.SetBackgroundColor akzeptiert Hex-Farbcodes. Kombinieren Sie Hintergrundfarben mit Schriftfarben für professionell aussehende Tabellenkalkulationen.

Wie erstelle ich Rahmen in Excel?

Rahmen helfen, Datenregionen zu definieren 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
$vbLabelText   $csharpLabel

IronXL unterstützt verschiedene Rahmentypen, darunter Dünn, Mittel, Dick, Doppel, Gepunktet und Gestichelt. Jede Rahmenseite kann unabhängig voneinander gestylt 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();
$vbLabelText   $csharpLabel

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

{t:(Bevorzugen Sie bei der Arbeit mit Bereichen die in IronXL integrierten Methoden .Sum(), .Avg(), .Max() und .Min() gegenüber rohen Formelzeichenfolgen – sie sind typsicher und vermeiden Syntaxfehler in Formeln.)}


Wie lege ich die Eigenschaften für Arbeitsblatt und Druck fest?

Verwenden Sie IronXL, um einzelne Arbeitsblätter zu schützen, Zeilen und Spalten einzufrieren und Druckformatoptionen einzustellen.

Wie kann ich die Eigenschaften eines Arbeitsblatts konfigurieren?

Arbeitsblätter schützen und Anzeigeoptionen kontrollieren:

// 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

Arbeitsblattschutz verhindert versehentliche Änderungen, während Einfriefen von Fenstern wichtige Zeilen oder Spalten beim Scrollen sichtbar hält.

Excel-Tabelle mit eingefrorener Kopfzeile und monatlichen Budgetdaten

**Abbildung 7** - *Eingefrorene Kopfzeile bleibt beim Scrollen sichtbar*

Excel-Schutzdialog, der zum Ändern des geschützten Arbeitsblatts ein Passwort erfordert

**Abbildung 8** - *Passwortschutz verhindert unbefugte Bearbeitungen*

Wie konfiguriere ich die Seiten- und Druckeinstellungen?

Professionelle Druckoptionen über IronXL einrichten:

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

Die Klasse PrintSetup bietet umfassende Druckkonfigurationsoptionen, die den Druckeinstellungen von Excel entsprechen.

Excel-Druckvorschau mit Einstellungen für Querformat und A4-Papiergröße

**Abbildung 9** - *Druckvorschau mit Querformat und angepassten 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);
$vbLabelText   $csharpLabel

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

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

Zusammenfassung

Dieses Tutorial demonstrierte, wie man mit IronXL Excel-Dateien in C# ohne Microsoft Office-Abhängigkeiten erstellt. Sie haben grundlegende Excel-Operationen gelernt, einschließlich Arbeitsmappenerstellung, Zellmanipulation, Formatierung, Formelverwendung und verschiedene Speicheroptionen. Die intuitive API von IronXL macht die Excel-Automatisierung for .NET-Entwickler unkompliziert.

Für weitergehende Funktionen erkunden Sie Zusammenführen von Zellen und Erstellen von Diagrammen. Bereit, IronXL in der Produktion zu verwenden? Starten Sie Ihre kostenlose Testversion oder sehen Sie sich die Lizenzierungsoptionen an.

Was kommt als nächstes?

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


Tutorial Schnellzugriff

Visual Studio-Logo
### Dieses Tutorial als C#-Quellcode herunterladen

Der vollständige C#-Quellcode zur Erstellung von Excel-Dateien ist als Visual Studio-Projektdatei verfügbar.

Herunterladen
### Entdecken Sie dieses Tutorial auf GitHub

Der Quellcode für dieses Projekt ist in C# und VB.NET auf GitHub verfügbar.

Verwenden Sie diesen Code als einfache Möglichkeit, um in wenigen Minuten mit der Erstellung von Excel-Dateien zu beginnen. Das Projekt wird als Microsoft Visual Studio-Projekt gespeichert, ist aber mit jeder .NET-IDE kompatibel.

Excel-Dateien in C# erstellen auf GitHub
GitHub-Logo
Symbol für die API-Dokumentation
### Lesen Sie die IronXL API-Referenz

Entdecken Sie die API-Referenz für IronXL, die alle Funktionen, Namespaces, Klassen, Methoden und Eigenschaften für eine umfassende Excel-Bearbeitung in .NET beschreibt.

Sehen Sie sich die API-Referenz an

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

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Bereit anzufangen?
Nuget Downloads 1,890,100 | Version: 2026.3 gerade veröffentlicht

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/tutorials/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/tutorials/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

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.