Löschen Sie leere Zeilen und Spalten in Excel mit Java

Wir können leere Zeilen und Spalten ganz einfach programmgesteuert aus Excel-Arbeitsblättern entfernen. In diesem Artikel erfahren Sie, wie Sie mit Java leere Zeilen und Spalten in Excel löschen.

Folgende Themen sollen in diesem Artikel behandelt werden:

Java-API zum Löschen leerer Zeilen und Spalten in Excel

Zum Entfernen leerer Zeilen und Spalten aus XLSX-Dateien verwenden wir die Aspose.Cells for Java-API. Bitte entweder download das JAR der API oder fügen Sie einfach die folgende pom.xml-Konfiguration in einer Maven-basierten Java-Anwendung hinzu.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.11</version>
</dependency>

Löschen Sie leere Zeilen in Excel mit Java

Wir können leere Zeilen aus Excel-Arbeitsblättern programmgesteuert löschen, indem wir die folgenden Schritte ausführen:

  • Laden Sie zunächst eine Excel-Datei mit der Klasse Workbook.
  • Rufen Sie als Nächstes die Methode Workbook.getWorksheets() auf und rufen Sie Arbeitsblätter im Objekt WorksheetCollection ab.
  • Greifen Sie dann auf das Arbeitsblatt zu, das die leeren Zeilen enthält, entweder über seinen Index (nullbasiert) oder über seinen Namen.
  • Rufen Sie danach die Methode Cells.deleteBlankRows() auf, um die leeren Zeilen aus dem aufgerufenen Arbeitsblatt zu löschen.
  • Rufen Sie schließlich die Methode save() mit dem Ausgabedateipfad auf, um die Ausgabedatei zu speichern.

Der folgende Beispielcode zeigt, wie leere Zeilen mit Java aus Excel entfernt werden.

// Laden Sie eine vorhandene Excel-Datei.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Rufen Sie die Arbeitsblattsammlung in der Tabelle ab.
WorksheetCollection sheets = workbook.getWorksheets();

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

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

// Speichern Sie die aktualisierte Excel-Datei.
workbook.save("C:\\Files\\Cells\\output.xlsx");
Löschen Sie leere Zeilen in Excel mit Java.

Löschen Sie leere Zeilen in Excel mit Java.

Ebenso können wir leere Zeilen aus allen Arbeitsblättern in einem Excel-Dokument löschen. Wir iterieren einfach über WorksheetCollection und rufen die Methode deleteBlankRows() für jedes Arbeitsblatt auf, wie im folgenden Codebeispiel gezeigt:

// Öffnen Sie eine vorhandene Excel-Datei.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Holen Sie sich die Arbeitsblattsammlung
WorksheetCollection worksheets = workbook.getWorksheets();

// Iterieren Sie über die Arbeitsblätter.
for (int i=0; i<worksheets.getCount(); i++)
{
    // Greifen Sie nacheinander auf die Arbeitsblätter zu
    Worksheet sheet = worksheets.get(i);
  
    // Löschen Sie die leeren Zeilen aus dem Arbeitsblatt.
    sheet.getCells().deleteBlankRows();
}

// Speichern Sie die aktualisierte Excel-Datei.
workbook.save("C:\\Files\\Cells\\output.xlsx");

Löschen Sie leere Spalten in Excel mit Java

Wir können leere Spalten aus Excel-Arbeitsblättern programmgesteuert löschen, indem wir die folgenden Schritte ausführen:

  • Laden Sie zunächst eine Excel-Datei mit der Klasse Workbook.
  • Rufen Sie als Nächstes die Methode Workbook.getWorksheets() auf und rufen Sie Arbeitsblätter im Objekt WorksheetCollection ab.
  • Greifen Sie dann auf das Arbeitsblatt zu, das die leeren Spalten enthält, entweder über seinen Index (nullbasiert) oder über seinen Namen.
  • Rufen Sie danach die Methode Cells.deleteBlankColumns() auf, um die leeren Spalten aus dem aufgerufenen Arbeitsblatt zu löschen.
  • Rufen Sie schließlich die Methode save() mit dem Ausgabedateipfad auf, um die Ausgabedatei zu speichern.

Der folgende Beispielcode zeigt, wie leere Spalten mit Java aus Excel entfernt werden.

// Öffnen Sie eine vorhandene Excel-Datei.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Rufen Sie die Arbeitsblattsammlung in der Tabelle ab.
WorksheetCollection sheets = workbook.getWorksheets();

// Holen Sie sich das erste Arbeitsblatt aus WorksheetCollection nach Index.
Worksheet sheet = sheets.get(2);

// Löschen Sie die leeren Spalten.
sheet.getCells().deleteBlankColumns(options);

// Speichern Sie die aktualisierte Excel-Datei.
workbook.save("C:\\Files\\Cells\\output_DeleteBlankColumns.xlsx");	
Löschen Sie leere Spalten in Excel mit Java.

Löschen Sie leere Spalten in Excel mit Java.

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

Das Löschen leerer Zeilen oder Spalten kann Verweise in Formeln, Diagrammen und Tabellen unterbrechen. Beispielsweise hat Zelle A1 in Sheet2 eine Formel =Sheet1!C7, die sich auf Zelle C7 des ersten Arbeitsblatts bezieht, wie in der folgenden Abbildung gezeigt.

Eine Zelle A1 in Sheet2 verweist auf einen Wert von Zelle C7 in Sheet1.

Eine Zelle A1 in Sheet2 verweist auf einen Wert von Zelle C7 in Sheet1.

Wenn wir leere Zeilen in Sheet1 entfernen, wird der Wert von C7 (650000) in Zelle C6 verschoben. Aber die Formel (=Sheet1!C7) wird nicht aktualisiert und Zelle A1 zeigt den Wert von C7 an, der in diesem Fall 550000 sein wird. Wir können dieses Problem vermeiden, indem wir DeleteOptions.setUpdateReference auf „true“ setzen. Es stellt sicher, dass die Referenzen aktualisiert werden, während leere Zeilen gelöscht werden.

Wir können Verweise automatisch aktualisieren, während wir programmgesteuert leere Zeilen aus Excel-Arbeitsblättern löschen, indem wir die folgenden Schritte ausführen:

  • Laden Sie zunächst eine Excel-Datei mit der Klasse Workbook.
  • Rufen Sie als Nächstes die Methode Workbook.getWorksheets() auf und rufen Sie Arbeitsblätter im Objekt WorksheetCollection ab.
  • Greifen Sie dann entweder nach dem Index (nullbasiert) oder nach dem Namen mit den leeren Zeilen auf das Arbeitsblatt zu.
  • Erstellen Sie als Nächstes eine Instanz der Klasse DeleteOptions.
  • Rufen Sie dann setUpdateReferences() auf true auf. Die Referenzen in anderen Blättern werden aktualisiert, während die leeren Zeilen gelöscht werden.
  • Rufen Sie danach die Methode Cells.deleteBlankRows() mit dem DeleteOptions-Objekt als Argument auf, um die leeren Zeilen aus dem aufgerufenen Arbeitsblatt zu löschen.
  • Rufen Sie schließlich die Methode save() mit dem Ausgabedateipfad auf, um die Ausgabedatei zu speichern.

Der folgende Beispielcode zeigt, wie Verweise aktualisiert werden, während die leeren Zeilen in Excel gelöscht werden.

// Öffnen Sie eine vorhandene Excel-Datei.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Rufen Sie die Arbeitsblattsammlung in der Tabelle ab.
WorksheetCollection sheets = workbook.getWorksheets();

// Holen Sie sich das erste Arbeitsblatt aus WorksheetCollection nach Index.
Worksheet sheet = sheets.get(0);

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

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

// Speichern Sie die aktualisierte Excel-Datei.
workbook.save("C:\\Files\\Cells\\output_UpdateReferencesAutomatically.xlsx");

Ebenso können wir Verweise aktualisieren, während wir die leeren Spalten in Excel löschen. Wir müssen jedoch nur die Methode deleteBlankColumns() mit DeleteOptions als Argument aufrufen.

Holen Sie sich eine kostenlose Lizenz

Bitte testen Sie die API ohne Evaluierungseinschränkungen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben wir gelernt, wie man Zeilen und Spalten in Excel mit Java löscht. Wir haben auch gesehen, wie Referenzen aktualisiert werden, während Zeilen und Spalten programmgesteuert gelöscht werden. Außerdem können Sie in der Dokumentation mehr über Aspose.Cells for Java API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch