Kombinieren Sie mehrere Excel-Dateien mit Java zu einer

Sie haben mehrere Excel-Arbeitsmappen und möchten diese in einer Datei zusammenführen, um Berichte zu erstellen oder Daten an einem Ort zu speichern. Als Java-Entwickler können Sie problemlos mehrere Excel-Dateien programmgesteuert zu einer Datei zusammenführen. In diesem Artikel erfahren Sie, wie Sie mehrere Excel-Dateien mit Java zu einer zusammenführen.

Die folgenden Themen werden in diesem Artikel behandelt/behandelt:

Java-API zum Zusammenführen von Excel-Dateien

Zum Zusammenführen mehrerer Excel-Dateien verwende ich Aspose.Cells for Java API. Mit dieser API können Sie Tabellenkalkulationen erstellen, bearbeiten, konvertieren, schützen oder drucken, ohne auf Microsoft Excel angewiesen zu sein. Es ermöglicht Ihnen, Excel-Automatisierungsfunktionen programmgesteuert in Ihren Java-Anwendungen auszuführen.

Sie können das JAR der API herunterladen oder einfach die folgende pom.xml-Konfiguration in Ihrer Maven-basierten Java-Anwendung hinzufügen, um die unten aufgeführten Codebeispiele auszuprobieren.

<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.8</version>
</dependency>

Kombinieren Sie mehrere Excel-Dateien mit Java zu einer

Sie können mehrere Excel-Dateien ganz einfach programmgesteuert zu einer einzigen Datei kombinieren, indem Sie die folgenden Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Workbook mit der ersten Quelldatei
  • Erstellen Sie eine Instanz der Klasse Workbook mit einer zweiten Quelldatei
  • Wiederholen Sie den obigen Schritt, um mehr als zwei Dateien zu kombinieren
  • Rufen Sie die Methode combine() mit der zweiten Quelldateiinstanz auf
  • Wiederholen Sie den obigen Schritt nacheinander für alle Quelldateien
  • Speichern Sie die Ausgabedatei, indem Sie die Methode save() der Workbook-Klasse aufrufen

Das folgende Codebeispiel zeigt, wie mehrere Excel-Dateien mithilfe von Java in einer Datei kombiniert werden.

// Öffnen Sie die erste Excel-Datei.
Workbook SourceBook1 = new Workbook("C:\\Files\\Quarter_1.xlsx");

// Öffnen Sie die zweite Excel-Datei.
Workbook SourceBook2 = new Workbook("C:\\Files\\Quarter_2.xlsx");

// Öffnen Sie die dritte Excel-Datei.
Workbook SourceBook3 = new Workbook("C:\\Files\\Quarter_3.xlsx");

// Arbeitsblätter der zweiten Excel-Datei in die erste Arbeitsmappe kopieren.
SourceBook1.combine(SourceBook2);

// Arbeitsblätter der dritten Excel-Datei in die erste Arbeitsmappe kopieren.
SourceBook1.combine(SourceBook3);

// Speichern Sie die aktualisierte erste Excel-Datei als neue Datei.
SourceBook1.save("C:\\Files\\CombinedFile.xlsx");
Kombinieren Sie mehrere Excel-Dateien mit Java zu einer

Kombinieren Sie mehrere Excel-Dateien mit Java zu einer

Die Klasse Workbook der API ist die Hauptklasse, die zum Erstellen einer Excel-Tabelle verwendet wird. Es ermöglicht Ihnen, die nativen Excel-Dateien zu öffnen und zu speichern. Es bietet auch mehrere Eigenschaften und Methoden für die Arbeit mit Excel-Tabellen. Die Methode combine() dieser Klasse kombiniert die aktuelle Arbeitsmappe mit einem anderen Workbook-Objekt. Die Methode save() der Workbook-Klasse speichert die Ausgabedatei im angegebenen Dateipfad.

Kombinieren Sie bestimmte Arbeitsblätter mehrerer Excel-Dateien mit Java zu einem

Sie können ganz einfach bestimmte Arbeitsblätter aus mehreren Excel-Dateien programmgesteuert in einer einzigen Datei kombinieren, indem Sie die folgenden Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Workbook für Quelldatei 1
  • Erstellen Sie eine Instanz der Klasse Workbook für Quelldatei 2
  • Wiederholen Sie den obigen Schritt, um Arbeitsblätter aus mehr als zwei Dateien zu kombinieren
  • Erstellen Sie eine Instanz der Klasse Workbook für die Zieldatei
  • Fügen Sie Arbeitsblätter mit der Methode add() der WorksheetCollection-Klasse hinzu
  • Rufen Sie die Methode copy() auf, um das angegebene Arbeitsblatt von der Quelldatei 1 in die Zieldatei zu kopieren
  • Rufen Sie die Methode copy() auf, um das angegebene Arbeitsblatt von der Quelldatei 2 in die Zieldatei zu kopieren
  • Benennen Sie Arbeitsblätter in der Zieldatei um, indem Sie die Methode setName() verwenden
  • Speichern Sie die Zieldatei, indem Sie die Methode save() der Workbook-Klasse aufrufen

Das folgende Codebeispiel zeigt, wie bestimmte Arbeitsblätter aus mehreren Excel-Dateien mithilfe von Java in einer Datei kombiniert werden.

String sourceFile1 = "Quarter_1.xlsx";
String sourceFile2 = "Quarter_2.xlsx";

// Öffnen Sie die erste Excel-Datei.
Workbook excelA = new Workbook("C:\\Files\\" + sourceFile1);

// Öffnen Sie die zweite Excel-Datei.
Workbook excelB = new Workbook("C:\\Files\\" + sourceFile2);

// Zielarbeitsmappe erstellen.
Workbook destWorkbook = new Workbook();

// Das erste Arbeitsblatt wird standardmäßig zur Arbeitsmappe hinzugefügt. Fügen Sie das zweite Arbeitsblatt hinzu.
destWorkbook.getWorksheets().add();

// Kopieren Sie das Jan-Arbeitsblatt der ersten Excel-Datei in die Zieldatei.
destWorkbook.getWorksheets().get(0).copy(excelA.getWorksheets().get("Jan"));

// Kopieren Sie das Juli-Arbeitsblatt der zweiten Excel-Datei in die Zieldatei.
destWorkbook.getWorksheets().get(1).copy(excelB.getWorksheets().get("Jul"));

// Standardmäßig lauten die Arbeitsblattnamen „Sheet1“ bzw. „Sheet2“.
// Geben wir ihnen aussagekräftige Namen.
destWorkbook.getWorksheets().get(0).setName(sourceFile1 + " - Jan");
destWorkbook.getWorksheets().get(1).setName(sourceFile2 + " - Jul");

// Speichern Sie die Zieldatei.
destWorkbook.save("C:\\Files\\CombinedSpecificSheetsInFile.xlsx");
Kombinieren Sie bestimmte Arbeitsblätter mehrerer Excel-Dateien mit Java zu einem

Kombinieren Sie bestimmte Arbeitsblätter mehrerer Excel-Dateien mit Java zu einem

Die Eigenschaftsmethode getWorksheets() der Workbook-Klasse gibt eine Auflistung aller Arbeitsblätter in einer Workbook zurück. Mit der Methode add() können Sie der Sammlung von Arbeitsblättern ein Arbeitsblatt hinzufügen.

Die Klasse Worksheet dieser API repräsentiert ein einzelnes Arbeitsblatt. Es bietet mehrere Eigenschaften und Methoden zum Arbeiten mit einem Arbeitsblatt. Die Methode copy() dieser Klasse kopiert Inhalte und Formate aus einem anderen Arbeitsblatt. Die Worksheet-Klasse stellt auch get()-Methoden bereit, um ein bestimmtes Arbeitsblatt anhand seines Index oder seines Namens abzurufen. Die Eigenschaftsmethode setName() legt den Namen des Arbeitsblatts fest.

Führen Sie mehrere Arbeitsblätter mit Java zu einem Arbeitsblatt zusammen

Sie können problemlos mehrere Arbeitsblätter einer Excel-Datei programmgesteuert zu einem einzigen Arbeitsblatt zusammenführen, indem Sie die unten aufgeführten Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Workbook für die Quelldatei
  • Fügen Sie ein neues Arbeitsblatt mit der Methode add() hinzu
  • Iterieren Sie über Quellarbeitsblätter und gehen Sie wie folgt vor:
    • Erstellen Sie mit der Methode createRange() einen Bereich von Zellen und Spalten für ein Arbeitsblatt
    • Kopieren Sie Daten mit der Methode copy() aus einem Quellbereich in den Zielbereich
  • Speichern Sie die Ausgabedatei, indem Sie die Methode save() der Workbook-Klasse aufrufen

Das folgende Codebeispiel zeigt, wie mehrere Arbeitsblätter mithilfe von Java zu einem Arbeitsblatt zusammengeführt werden.

// Öffnen Sie eine Excel-Datei, die die Arbeitsblätter enthält:
// Januar, Februar, März und April
Workbook workbook = new Workbook("C:\\Files\\Quarter_1.xlsx");

// Fügen Sie ein Arbeitsblatt mit dem Namen Summary_sheet hinzu
Worksheet summarySheet = workbook.getWorksheets().add("Summary_sheet");

// Iterieren Sie über Quellarbeitsblätter, um Daten in die zu kopieren
// zusammenfassendes Arbeitsblatt
String[] nameOfSourceWorksheets = { "Jan", "Feb", "Mar", "Apr" };
int totalRowCount = 0;

for (String sheetName : nameOfSourceWorksheets)
{
  // Arbeitsblatt erhalten
    Worksheet sourceSheet = workbook.getWorksheets().get(sheetName);

    Range sourceRange = null;
    Range destRange = null;

    // Im Falle des Jan-Arbeitsblatts schließen Sie alle Zeilen und Spalten ein.
    if (sheetName.equals("Jan"))
    {
        sourceRange = sourceSheet.getCells().getMaxDisplayRange();

        destRange = summarySheet.getCells().createRange(
                sourceRange.getFirstRow() + totalRowCount,
                sourceRange.getFirstColumn(),
                sourceRange.getRowCount(),
                sourceRange.getColumnCount());
    }
    // Bei anderen Arbeitsblättern
    // schließen Sie die erste Zeile aus (die Überschriften enthält).
    else
    {
        int mdatarow = sourceSheet.getCells().getMaxDataRow(); // Zero-based
        int mdatacol = sourceSheet.getCells().getMaxDataColumn(); // Zero-based
        sourceRange = sourceSheet.getCells().createRange(0 + 1, 0, mdatarow, mdatacol + 1);

        destRange = summarySheet.getCells().createRange(
                sourceRange.getFirstRow() + totalRowCount -1,
                sourceRange.getFirstColumn(),
                sourceRange.getRowCount(),
                sourceRange.getColumnCount());
    }

    // Kopiert Daten, Formatierungen, Zeichenobjekte etc. von a
    // Quellbereich zum Zielbereich.
    destRange.copy(sourceRange);
    totalRowCount = sourceRange.getRowCount() + totalRowCount;
}

// Speichern Sie die Arbeitsmappe 
workbook.save("C:\\Files\\Summarized.xlsx");
Führen Sie mehrere Arbeitsblätter mit Java zu einem Arbeitsblatt zusammen

Führen Sie mehrere Arbeitsblätter mit Java zu einem Arbeitsblatt zusammen

Die Eigenschaftsmethode getCells() der Worksheet-Klasse stellt die Sammlung der im Arbeitsblatt verfügbaren Zellen bereit. Die Klasse Cells der API stellt eine Sammlung von Objekten dar, die für eine Zelle relevant sind, z. B. Cell, Row usw. Die Eigenschaft getMaxDisplayRange(). -Methode der Cells-Klasse stellt den maximalen Bereich bereit, der Daten, verbundene Zellen und Formen umfasst. Die Klasse Range repräsentiert einen Zellbereich innerhalb einer Tabelle.

Die Cells-Klasse bietet die folgenden Methoden zum Erstellen eines Zellbereichs:

  • createRange(int firstIndex, int number, boolean isVertical)-Methode zum Erstellen eines Range-Objekts aus Zeilen von Zellen oder Spalten von Zellen.
  • createRange(int firstRow, int firstColumn, int totalRows, int totalColumns) Methode, um ein Range-Objekt aus einem Bereich von Zellen zu erstellen.
  • Die Methode createRange(java.lang.String address) erstellt ein Range-Objekt aus einer Adresse des Bereichs.
  • Die Methode createRange(java.lang.String upperLeftCell, java.lang.String lowerRightCell) erstellt ein Range-Objekt aus einem Bereich von Zellen.

Die Methode copy() der Range-Klasse kopiert alle Arten von Daten (einschließlich Formeln), Formatierungen, Zeichnungsobjekten usw. aus einem Quellbereich in den Zielbereich.

Konsolidieren Sie Spalten mehrerer Arbeitsblätter mit Java zu einem

Sie können Spalten mehrerer Arbeitsblätter ganz einfach programmgesteuert in einem einzigen Arbeitsblatt zusammenführen, indem Sie die unten genannten Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Workbook für die Quelldatei
  • Fügen Sie ein neues Arbeitsblatt mit der Methode add() hinzu
  • Iterieren Sie über Quellarbeitsblätter und gehen Sie wie folgt vor:
    • Kopieren Sie alle Spalten nacheinander mit der Methode copyColumn() mit Quellarbeitsblattzellen und Spaltenindex
  • Speichern Sie die Ausgabedatei, indem Sie die Methode save() der Workbook-Klasse aufrufen

Das folgende Codebeispiel zeigt, wie Spalten mehrerer Arbeitsblätter mithilfe von Java in einem Arbeitsblatt konsolidiert werden.

// Öffnen Sie eine Arbeitsmappe.
Workbook workbook = new Workbook("C:\\Files\\sample.xlsx");

// Fügen Sie ein Arbeitsblatt mit dem Namen Summary_sheet hinzu
Worksheet summarySheet = workbook.getWorksheets().add("Summary_sheet");

// Durchlaufen Sie Arbeitsblätter, um Spalten in die zu kopieren
// zusammenfassendes Arbeitsblatt
String[] nameOfSourceWorksheets = { "Products", "Sales", "Customers" };
int totalCol = 0; 

for (String sheetName : nameOfSourceWorksheets) {
  Worksheet sourceSheet = workbook.getWorksheets().get(sheetName);

  if (sheetName.equals("Products")) {
    // Holen Sie sich die Sammlung von Arbeitsblattspalten
    ColumnCollection columns = sourceSheet.getCells().getColumns();

    // Spalte in summaySheet kopieren
    for (Column column : (Iterable<Column>) columns)
    {
      summarySheet.getCells().copyColumn(sourceSheet.getCells(), column.getIndex(), totalCol);
      totalCol = totalCol + 1;
    }
    }
  else {
    // Holen Sie sich die Sammlung von Arbeitsblattspalten
    ColumnCollection columns = sourceSheet.getCells().getColumns();

    // Spalte in summaySheet kopieren
    for (Column column : (Iterable<Column>) columns)
    {
      summarySheet.getCells().copyColumn(sourceSheet.getCells(), column.getIndex(), totalCol);
      totalCol = totalCol + 1;
    }
  }
}

// Speichern Sie die Excel-Datei.
workbook.save("C:\\Files\\CopyingColumns_out.xlsx");
Konsolidieren Sie Spalten mehrerer Arbeitsblätter mit Java zu einem

Konsolidieren Sie Spalten mehrerer Arbeitsblätter mit Java zu einem

Die Eigenschaftsmethode getColumns() der Cells-Klasse stellt die Auflistung der im Arbeitsblatt verfügbaren Spalten bereit. Die Klasse ColumnCollection stellt die Sammlung der einzelnen Spalten in einem Arbeitsblatt dar, während die Klasse Column eine einzelne Spalte in einem Arbeitsblatt darstellt.

Die Methode copyColumn() der Cells-Klasse kopiert die Daten und Formate einer ganzen Spalte. Die Cells-Klasse stellt auch überladene copyColumn()-Methoden bereit, um Daten mit den PasteOptions-, Spaltennummer-, Quell- und Zielsummenspalten usw. zu kopieren.

Holen Sie sich eine kostenlose Lizenz

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

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mehrere Excel-Dateien zu einer Datei kombinieren. Sie haben auch gelernt, wie Sie bestimmte Arbeitsblätter mehrerer Excel-Dateien mit Java kombinieren. Darüber hinaus haben Sie gelernt, wie Sie mehrere Arbeitsblätter programmgesteuert zu einem einzigen Arbeitsblatt zusammenführen. In diesem Artikel wurde auch erklärt, wie Sie Spalten mehrerer Arbeitsblätter mit Java zu einem konsolidieren. Weitere Informationen zu Aspose.Cells for Java API finden Sie in der Dokumentation. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch