Wie man eine Excel-Datei in C# erstellt

Hinzufügen von Freeze Pane in Excel mit C#35;

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

In großen Excel-Tabellen mit mehr als 50 Zeilen oder Spalten jenseits von "Z" ist es schwierig, die Daten anzuzeigen und gleichzeitig die Überschriften sichtbar zu halten. Die Freeze Pane-Funktionalität in C# bietet eine elegante Lösung, indem bestimmte Zeilen und Spalten fixiert werden, während der Rest frei gescrollt werden kann.

Diese Funktion ist unerlässlich, wenn Sie mit Finanzberichten, Mitarbeiterdatenbanken oder Inventarlisten arbeiten, bei denen Sie eine ständige Sichtbarkeit der Spaltenüberschriften oder Zeilenbezeichner benötigen. Mit der Excel-Bibliothek von IronXL können Sie programmatisch Einfrierbereiche hinzufügen, um die Datennavigation und die Benutzerfreundlichkeit in Ihren .NET-Anwendungen zu verbessern.

als-überchrift:2(Schnellstart: Kopfzeilen und Spalten in einer Zeile sperren)

Verwenden Sie die einfache CreateFreezePane(colSplit, rowSplit)-Methode, um Zeilen oder Spalten in Sekunden einzufrieren. Kein kompliziertes Setup - laden Sie einfach Ihr Blatt, rufen Sie diese Methode auf, und Ihre Kopfzeilen bleiben beim Blättern oben stehen.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronXL mit dem NuGet-Paketmanager.

    PM > Install-Package IronXL.Excel

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    workSheet.CreateFreezePane(1, 4);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronXL in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Wie füge ich einen Standbildbereich in Excel hinzu?

Freeze-Panels fixieren Zeilen und Spalten, so dass sie beim Scrollen sichtbar bleiben. Mit dieser Funktion bleiben Kopfspalten oder -zeilen an ihrem Platz, während Informationen schnell verglichen werden. Diese Funktionalität ist besonders wertvoll bei der Arbeit mit großen Datensätzen oder wenn Sie den Kontext beibehalten müssen, während Sie durch umfangreiche Tabellenkalkulationen navigieren.

Die Freeze-Panel-Funktion in IronXL ahmt die systemeigene Funktionalität von Excel nach, so dass sie für Entwickler, die mit der Excel-Oberfläche vertraut sind, intuitiv ist. Im Gegensatz zu Excel Interop Lösungen bietet IronXL einen effizienteren und serverfreundlichen Ansatz zur programmatischen Implementierung von Freeze Panes.

Wie funktioniert CreateFreezePane mit 2 Parametern?

Um ein Fenster fixieren hinzuzufügen, verwenden Sie die CreateFreezePane-Methode, um die Spalte und Zeile anzugeben, ab der das Fenster fixieren beginnen soll. Die angegebene Spalte und Zeile sind im fixierten Fenster nicht enthalten. Beispiel: workSheet.CreateFreezePane(1, 4) erstellt einen Freeze-Bereich ab Spalte A und Zeilen 1 bis 4.

Das Verständnis der nullbasierten Indizierung ist entscheidend: Spalte 0 bezieht sich auf Spalte A, Spalte 1 auf B und so weiter. Die Zeilenindizierung folgt demselben Muster. Diese Methode eignet sich perfekt für Szenarien, in denen die Überschriften sichtbar bleiben sollen, während Sie durch die Dateneinträge blättern.

Das folgende Codebeispiel demonstriert, wie ein Fenster fixieren ab Spalte B und Zeile 4 erstellt wird:

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-add.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Create freeze pane from column(A-B) and row(1-3)
workSheet.CreateFreezePane(2, 3);

workBook.SaveAs("createFreezePanes.xlsx");
Imports IronXL
Imports System.Linq

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()

' Create freeze pane from column(A-B) and row(1-3)
workSheet.CreateFreezePane(2, 3)

workBook.SaveAs("createFreezePanes.xlsx")
$vbLabelText   $csharpLabel

Wie sieht Freeze Pane in Aktion aus?

Freeze Pane in Action

Wie entferne ich den Standbildbereich?

Verwenden Sie die Methode RemovePane, um alle vorhandenen Standbildfenster aus Ihrer Tabelle zu entfernen. Dies ist nützlich, wenn Sie die Ansicht zurücksetzen oder verschiedene Freeze-Einstellungen aufgrund von Benutzereinstellungen oder Datenänderungen anwenden müssen.

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-remove.cs
// Remove all existing freeze or split pane
workSheet.RemovePane();
' Remove all existing freeze or split pane
workSheet.RemovePane()
$vbLabelText   $csharpLabel

Was sind die erweiterten Optionen des Freeze-Fensters?

Die CreateFreezePane-Methode bietet eine erweiterte Option, um fixierte Fenster mit Scroll-Funktionalität zu erstellen. Diese Funktion ist nützlich, wenn Sie die Aufmerksamkeit auf einen bestimmten Bereich der Kalkulationstabelle lenken und gleichzeitig die Funktionalität des Standbildfensters beibehalten möchten.

Wann sollte ich 4 Parameter für erweiterte Freeze-Panels verwenden?

Diese Methode fügt ein Fenster basierend auf der definierten Startspalte und -zeile hinzu. Zusätzlich können Sie das Scrollen auf das Arbeitsblatt anwenden. Dies ist besonders vorteilhaft bei der Arbeit mit formatierten Excel-Berichten, bei denen Sie eine genaue Kontrolle über die Ausgangsansicht benötigen.

So wird beispielsweise mit workSheet.CreateFreezePane(5, 2, 6, 7) ein Standbildbereich erstellt, der sich über die Spalten A-E und Zeilen 1-2 erstreckt. Es beinhaltet ein Scrollen um 1 Spalte und 5 Zeilen. Wenn das Arbeitsblatt geöffnet wird, zeigt es Spalten A-E, G-... und Zeilen 1-2, 8-....

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-advance.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll
// The column will show E,G,... and the row will show 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7);

workBook.SaveAs("createFreezePanes.xlsx");
Imports IronXL
Imports System.Linq

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()

' Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll
' The column will show E,G,... and the row will show 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7)

workBook.SaveAs("createFreezePanes.xlsx")
$vbLabelText   $csharpLabel

Wie sieht Advanced Freeze Pane aus?

Excel-Freeze-Panes-Demo mit Mitarbeiterdaten mit eingefrorenen Kopfzeilen und ID-Spalte, blauer Pfeil zeigt die Freeze-Grenze

Praktische Anwendungsfälle für Freeze Panes

Freeze Panes sind in verschiedenen Geschäftsszenarien von unschätzbarem Wert:

  1. Finanzberichte: Monats- und Quartalsüberschriften müssen beim Blättern durch die Jahresdaten sichtbar bleiben
  2. Mitarbeiterdatenbanken: Sperren von Mitarbeiternamen und IDs bei der Anzeige von Leistungskennzahlen
  3. Bestandsverwaltung: Korrektur von Produktcodes und -namen bei der Überprüfung von Lagerbeständen
  4. Verkaufs-Dashboards: Behalten Sie den Überblick über Produktkategorien und analysieren Sie regionale Verkaufsdaten

In Kombination mit Excel-Formeln erhöhen Freeze-Panels die Effizienz der Datenanalyse erheblich.

Komplettes Beispiel: Erstellen eines Datenberichts mit Freeze Panes

Hier ist ein umfassendes Beispiel, das zeigt, wie man einen formatierten Bericht mit Freeze-Fenstern erstellt:

using IronXL;
using IronXL.Styles;

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report");

// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Q1 Sales";
workSheet["D1"].Value = "Q2 Sales";
workSheet["E1"].Value = "Q3 Sales";
workSheet["F1"].Value = "Q4 Sales";
workSheet["G1"].Value = "Total";

// Style headers
var headerRange = workSheet["A1:G1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";

// Add sample data
for (int i = 2; i <= 50; i++)
{
    workSheet[$"A{i}"].Value = $"P{i-1:D3}";
    workSheet[$"B{i}"].Value = $"Product {i-1}";
    workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})";
}

// Apply freeze pane to keep headers visible
workSheet.CreateFreezePane(0, 1);

// Auto-size columns for better visibility
workSheet.AutoSizeColumn(0, 6);

// Save the workbook
workBook.SaveAs("SalesReportWithFreezePanes.xlsx");
using IronXL;
using IronXL.Styles;

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report");

// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Q1 Sales";
workSheet["D1"].Value = "Q2 Sales";
workSheet["E1"].Value = "Q3 Sales";
workSheet["F1"].Value = "Q4 Sales";
workSheet["G1"].Value = "Total";

// Style headers
var headerRange = workSheet["A1:G1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";

// Add sample data
for (int i = 2; i <= 50; i++)
{
    workSheet[$"A{i}"].Value = $"P{i-1:D3}";
    workSheet[$"B{i}"].Value = $"Product {i-1}";
    workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})";
}

// Apply freeze pane to keep headers visible
workSheet.CreateFreezePane(0, 1);

// Auto-size columns for better visibility
workSheet.AutoSizeColumn(0, 6);

// Save the workbook
workBook.SaveAs("SalesReportWithFreezePanes.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel zeigt, wie Freeze Panes mit Zellengestaltung und Formeln funktionieren, um professionelle Berichte zu erstellen. Die Kopfzeile bleibt sichtbar, während die Benutzer durch die 50 Zeilen mit Verkaufsdaten blättern.

Erwägungen zur Leistung

Bei der Implementierung von Standbildfenstern in großen Tabellenkalkulationen:

  • Einfrieren von Fenstern nach dem Auffüllen von Daten für optimale Leistung
  • Erwägen Sie die Verwendung von bedingter Formatierung, um wichtige Daten in eingefrorenen Abschnitten hervorzuheben
  • Testen Sie mit Ihrem Zieldatenvolumen, um einen reibungslosen Bildlauf zu gewährleisten

Für Anwendungen, die mit umfangreichen Datensätzen arbeiten, sollten Sie den Export in verschiedene Formate oder die Implementierung von Paginierungsstrategien zusammen mit Freeze-Panels untersuchen.

Hinweis:Es kann nur eine Freeze-Panel-Einstellung angewendet werden. Jede weitere Erstellung von Fensterfixierungen wird die vorherige überschreiben. Freeze pane funktioniert nicht mit Microsoft Excel Versionen 97-2003 (.xls).

Häufig gestellte Fragen

Was ist die Freeze-Panel-Funktion und warum ist sie in Excel-Tabellen nützlich?

Die Funktion "Freeze Pane" fixiert bestimmte Zeilen und Spalten, so dass sie beim Scrollen durch große Tabellenblätter sichtbar bleiben. Dies ist besonders nützlich, um die Sichtbarkeit von Kopfzeilen in Finanzberichten, Mitarbeiterdatenbanken oder Inventarlisten zu erhalten. IronXL bietet eine einfache CreateFreezePane-Methode, um diese Funktionalität programmatisch in C#-Anwendungen zu implementieren.

Wie kann ich in C# schnell Freeze-Panels zum Sperren von Kopfzeilen hinzufügen?

Mit IronXL können Sie mit der CreateFreezePane-Methode Kopfzeilen in nur einer Codezeile sperren. Rufen Sie einfach workSheet.CreateFreezePane(1, 4) auf, um Spalten und Zeilen einzufrieren. Dadurch werden Spalte A und die Zeilen 1-4 fixiert, während der Rest des Arbeitsblatts frei blättern kann.

Was ist der Unterschied zwischen der Verwendung von 2 Parametern und 4 Parametern bei CreateFreezePane?

Die CreateFreezePane-Methode von IronXL bietet zwei Optionen: Bei Verwendung von 2 Parametern (colSplit, rowSplit) wird ein einfaches Freeze-Panel von der angegebenen Position aus erstellt, während die Verwendung von 4 Parametern das Hinzufügen von Freeze-Panels mit vorgerollter Positionierung für eine erweiterte Kontrolle über den Anzeigebereich ermöglicht.

Wie funktioniert die nullbasierte Indizierung beim Einstellen von Freeze-Panels?

In der CreateFreezePane-Methode von IronXL ist die Indizierung nullbasiert. Spalte 0 bezieht sich auf Spalte A, Spalte 1 auf Spalte B, und so weiter. Auch die Zeilenindizierung beginnt bei 0. CreateFreezePane(1, 4) erstellt beispielsweise ein Freeze-Pane, das mit Spalte A beginnt und die Zeilen 1 bis 4 umfasst.

Warum sollte ich diese Bibliothek anstelle von Excel Interop für Freeze Panes verwenden?

IronXL bietet im Vergleich zu Excel-Interop-Lösungen einen effizienteren und serverfreundlicheren Ansatz. Es erfordert keine Excel-Installation auf dem Server, bietet eine bessere Leistung für große Datensätze und stellt eine intuitive API bereit, die die nativen Funktionen von Excel nachahmt und gleichzeitig für .NET-Anwendungen optimiert ist.

Kann ich Tabellenkalkulationen mit Standbildfenstern in verschiedene Dateiformate exportieren?

Ja, nach dem Hinzufügen von Freeze Panes mit der CreateFreezePane-Methode von IronXL können Sie Ihre Kalkulationstabelle in verschiedene Dateiformate exportieren und dabei die Freeze-Pane-Funktionalität beibehalten. Die Bibliothek bewahrt diese Einstellungen beim Speichern in unterstützten Excel-Formaten.

Chaknith Bin
Software Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat umfassende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Einblicke aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentationen und einem insgesamt besseren Erlebnis bei.
Bereit anzufangen?
Nuget Downloads 1,765,830 | Version: 2025.12 gerade veröffentlicht