In diesem Artikel werde ich erklären, wie man leere Zeilen und Spalten in einer Excel-Datei mit C# löscht. Ich werde auch erklären, wie Verweise automatisch aktualisiert werden (in Formeln, Diagrammen und Tabellen verwendet), während leere Zeilen und Spalten gelöscht werden.

C#-API zum Entfernen leerer Zeilen und Spalten

Aspose.Cells for .NET ist eine bekannte Tabellenkalkulations-API, mit der Sie Excel-Dateien in Ihren .NET-Anwendungen erstellen und verarbeiten können. Mit der API können Sie in wenigen Codezeilen leere Zeilen und Spalten in den Excel-Dateien entfernen. Sie können die Binärdateien der API entweder herunterladen oder sie mit NuGet installieren lassen.

PM> Install-Package Aspose.Cells

Löschen Sie leere Zeilen in Excel mit C#

Im Folgenden finden Sie die Schritte zum Löschen aller leeren Zeilen in Excel mithilfe von C#.

  • Öffnen Sie eine Excel-Datei mit dem Objekt Workbook.
  • Greifen Sie auf das Arbeitsblatt mit den leeren Zeilen zu. Auf das Arbeitsblatt kann entweder über den Index (nullbasiert) oder über den Namen zugegriffen werden.
  • Rufen Sie die Methode Cells.DeleteBlankRows() auf, um alle leeren Zeilen zu löschen, die keine Daten enthalten.

Der folgende Beispielcode zeigt, wie Leerzeilen in Excel mithilfe von C# entfernt werden.

using Aspose.Cells;

// Öffnen Sie eine vorhandene Excel-Datei.
Workbook wb = new Workbook("SampleInput.xlsx");

// Rufen Sie die Arbeitsblattsammlung in der Tabelle ab.
WorksheetCollection sheets = wb.Worksheets;

// Holen Sie sich das erste Arbeitsblatt aus WorksheetCollection nach Index.
Worksheet sheet = sheets[0];
// Oder mit Namen.
// Arbeitsblatt sheet = sheet["Sheet1"];

// Löschen Sie die leeren Zeilen aus dem Arbeitsblatt.
sheet.Cells.DeleteBlankRows();

// Speichern Sie die Excel-Datei.
wb.Save("SampleOutput.xlsx");
Leere Zeilen löschen

Abb. 1: Leere Zeilen löschen

Bitte beachten Sie, dass die Methode Cells.DeleteBlankRows die leeren Zeilen entfernt, selbst wenn eine Art Formatierung auf sie angewendet wird. Es entfernt auch die formatierten leeren Zeilen unter Ihren Daten.

Löschen Sie formatierte leere Zeilen

Abb. 2: Formatierte Leerzeilen löschen

Wenn Sie leere Zeilen aus allen Arbeitsblättern in einem Excel-Dokument löschen möchten, iterieren Sie einfach über WorksheetCollection und rufen Sie die Methode DeleteBlankRows für jedes Arbeitsblatt auf, wie im folgenden Code gezeigt:

// Öffnen Sie eine vorhandene Excel-Datei.
Workbook workbook = new Workbook("SampleInput.xlsx");

// Iterieren Sie über die Arbeitsblätter.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // Löschen Sie die leeren Zeilen aus dem Arbeitsblatt.
    sheet.Cells.DeleteBlankRows();
}

// Speichern Sie die Excel-Datei.
workbook.Save("SampleOutput.xlsx");

Verweise automatisch aktualisieren, während leere Zeilen gelöscht werden

Das Löschen leerer Zeilen kann Verweise in Formeln, Diagrammen und Tabellen unterbrechen. Beispielsweise hat die Zelle B2 im zweiten Arbeitsblatt eine Formel =Sheet1!C3, die sich auf Zelle C3 im ersten Arbeitsblatt bezieht, wie in der folgenden Abbildung gezeigt.

Eine Zelle in Sheet2 verweist auf einen Wert in Sheet1.

Abb. 3: Eine Zelle in Sheet2 verweist auf einen Wert in Sheet1.

Wenn wir leere Zeilen in Sheet1 entfernen, wird der Wert lima@gmail.com in Zelle C1 verschoben. Aber die Formel (=Sheet1!C3) wird nicht aktualisiert und die Zelle B2 enthält einen ungültigen Wert, wie unten gezeigt.

Nach dem Entfernen leerer Zeilen wurde die Formel in Zelle B2 nicht aktualisiert.

Abb. 4: Nach dem Entfernen leerer Zeilen wurde die Formel in Zelle B2 nicht aktualisiert.

Wir können dieses Problem vermeiden, indem wir die Eigenschaft DeleteOptions.UpdateReference verwenden und sie auf „true“ setzen. Es stellt sicher, dass die Referenzen aktualisiert werden, während leere Zeilen gelöscht werden. Der folgende Beispielcode zeigt, wie die DeleteOptions.UpdateReference-Eigenschaft verwendet wird.

// Öffnen Sie eine vorhandene Excel-Datei.
Workbook wb = new Workbook("SampleInput.xlsx");

// Rufen Sie die Arbeitsblattsammlung in der Tabelle ab.
WorksheetCollection sheets = wb.Worksheets;

// Holen Sie sich das erste Arbeitsblatt aus WorksheetCollection nach Index.
Worksheet sheet = sheets[0];

// Diese Option stellt sicher, dass die Referenzen (in Formeln, Diagrammen)
// werden beim Löschen leerer Zeilen aktualisiert.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Löschen Sie die leeren Zeilen aus dem Arbeitsblatt.
sheet.Cells.DeleteBlankRows(options);

// Speichern Sie die Excel-Datei.
wb.Save("SampleOutput.xlsx");

Wie im folgenden Bild gezeigt, wurde die Formel aktualisiert und die Zelle B2 enthält einen gültigen Wert.

Die Formel wurde aktualisiert und die Zelle enthält einen gültigen Wert.

Abb. 5: Die Formel wurde aktualisiert und die Zelle enthält einen gültigen Wert.

Löschen Sie leere Spalten in Excel mit C#

Die Schritte zum Löschen leerer Spalten sind dieselben wie zum Löschen leerer Zeilen. Wir verwenden die Methode Cells.DeleteBlankColumns, um alle leeren Spalten zu löschen, die keine Daten enthalten. Der folgende Beispielcode zeigt, wie leere Zeilen und Spalten in C# gelöscht werden.

// Öffnen Sie eine vorhandene Excel-Datei.
Workbook wb = new Workbook("SampleInput.xlsx");

// Rufen Sie die Arbeitsblattsammlung in der Tabelle ab.
WorksheetCollection sheets = wb.Worksheets;

// Holen Sie sich das erste Arbeitsblatt aus WorksheetCollection nach Index.
Worksheet sheet = sheets[0];

// Diese Option stellt sicher, dass die Referenzen (in Formeln, Diagrammen)
// werden beim Löschen leerer Zeilen und Spalten aktualisiert.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Löschen Sie die leeren Zeilen und Spalten.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// Formeln der Arbeitsmappe berechnen
wb.CalculateFormula();

// Speichern Sie die Excel-Datei.
wb.Save("SampleOutput.xlsx");
Leere Zeilen und Spalten löschen

Abb. 6: Leere Zeilen und Spalten löschen

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit C# leere Zeilen und Spalten in einer Excel-Datei löschen. Außerdem haben Sie gelernt, wie Sie Verweise (die in Formeln, Diagrammen und Tabellen verwendet werden) automatisch aktualisieren, während Sie leere Zeilen und Spalten löschen. Weitere Informationen finden Sie in der Dokumentation von Aspose.Cells für .NET. Wenn Sie Fragen haben, können Sie diese gerne in unserem Support-Forum posten. Wir werden sie in ein paar Stunden beantworten.

Siehe auch