In diesem Artikel erfahren Sie, wie Sie mit C# Blätter aus mehreren Excel-Arbeitsmappen in eine Arbeitsmappe kopieren. Außerdem erfahren Sie, wie Sie Daten aus mehreren Arbeitsblättern in ein Blatt kopieren. Lasst uns beginnen.

C#-API zum Zusammenführen mehrerer Excel-Dateien

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

PM> Install-Package Aspose.Cells

Kombinieren Sie mehrere Excel-Dateien mit C# zu einer

Manchmal müssen Sie mehrere Excel-Dateien zu einer Datei zusammenführen. Sie möchten Arbeitsblätter aus den Quellarbeitsmappen in die Zielarbeitsmappe kopieren, wie unten gezeigt. Excel-Dokumente können jede Version wie Excel 97, Excel 2010 oder Excel 2016 haben.

Kombinieren Sie mehrere Excel-Dateien mit C# zu einer

Abb. 1: Kombinieren Sie Excel-Dateien

Der folgende Beispielcode zeigt, wie mehrere Excel-Dateien mit C# zu einer kombiniert werden.

// Öffnen Sie die erste Excel-Datei.
Workbook SourceBook1 = new Workbook("Excel A.xlsx");

// Öffnen Sie die zweite Excel-Datei.
Workbook SourceBook2 = new Workbook("Excel B.xlsx");

// Öffnen Sie die dritte Excel-Datei.
Workbook SourceBook3 = new Workbook("Excel C.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("CombinedFile.xlsx");

Kombinieren Sie bestimmte Arbeitsblätter von Excel-Dateien mit C#

Der obige Code kopiert alle Arbeitsblätter in den Quelldateien in die Zieldatei. Möglicherweise möchten Sie jedoch bestimmte Arbeitsblätter aus den Quelldateien in die Zieldatei kopieren. Beispiel: Sie haben zwei Excel-Dateien und jede hat drei Arbeitsblätter mit den Namen Sales, Employees und Expenses. Sie möchten nur das Verkaufsarbeitsblatt aus beiden Dateien in die Zieldatei kopieren, wie in der folgenden Abbildung gezeigt.

Kombinieren Sie bestimmte Arbeitsblätter von Excel-Dateien mit C#

Abb. 2: Kombinieren Sie bestimmte Arbeitsblätter von Excel-Dateien

Der folgende Beispielcode zeigt, wie bestimmte Arbeitsblätter von Quelldateien mithilfe von C# in einer Zieldatei kombiniert werden.

// Öffnen Sie eine Excel-A-Datei.
Workbook excelA = new Workbook("Excel A.xlsx");

// Öffnen Sie die Excel B-Datei.
Workbook excelB = new Workbook("Excel B.xlsx");

// Zielarbeitsmappe erstellen.
Workbook destWorkbook = new Workbook();
// Das erste Arbeitsblatt wird standardmäßig zur Arbeitsmappe hinzugefügt. Fügen Sie das zweite Arbeitsblatt hinzu.
destWorkbook.Worksheets.Add();

// Kopieren Sie das Verkaufsarbeitsblatt der Excel-A-Datei in die Zieldatei.
destWorkbook.Worksheets[0].Copy(excelA.Worksheets["Sales"]);

// Kopieren Sie das Verkaufsarbeitsblatt der Excel B-Datei in die Zieldatei.
destWorkbook.Worksheets[1].Copy(excelB.Worksheets["Sales"]);

// Standardmäßig lauten die Arbeitsblattnamen „Sheet1“ bzw. „Sheet2“.
// Geben wir ihnen aussagekräftige Namen.
destWorkbook.Worksheets[0].Name = excelA.FileName + " - Sales";
destWorkbook.Worksheets[1].Name = excelB.FileName + " - Sales";

// Speichern Sie die Zieldatei.
destWorkbook.Save("CombinedFile.xlsx");

Mehrere Arbeitsblätter mit C# zu einem zusammenführen

Manchmal müssen Sie Daten aus mehreren Arbeitsblättern in ein Arbeitsblatt kopieren. Sie haben beispielsweise einige Arbeitsblätter in einer Excel-Datei, die Informationen zu verschiedenen Produkten enthalten, und Sie möchten diese Blätter wie folgt in einem zusammenfassenden Arbeitsblatt zusammenführen:

Mehrere Arbeitsblätter mit C# zu einem zusammenführen

Abb. 3: Mehrere Arbeitsblätter zu einem zusammenführen

Der folgende Codeausschnitt zeigt, wie Daten aus mehreren Arbeitsblättern mit C# in ein Arbeitsblatt kopiert werden.

// Öffnen Sie eine Excel-Datei, die die Arbeitsblätter enthält:
// Produkte1, Produkte2 und Produkte3
Workbook workbook = new Workbook("Products.xlsx");

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

// Iterieren Sie über Quellarbeitsblätter, deren Daten Sie kopieren möchten
// zusammenfassendes Arbeitsblatt
string[] nameOfSourceWorksheets = { "Products1", "Products2", "Products3" };
int totalRowCount = 0;

foreach (string sheetName in nameOfSourceWorksheets)
{
    Worksheet sourceSheet = workbook.Worksheets[sheetName];

    Range sourceRange;
    Range destRange;
    // Im Falle des Arbeitsblatts „Products1“ alle Zeilen und Spalten einbeziehen.
    if (sheetName.Equals("Products1"))
    {
        sourceRange = sourceSheet.Cells.MaxDisplayRange;
        
        destRange = summarySheet.Cells.CreateRange(
                sourceRange.FirstRow + totalRowCount,
                sourceRange.FirstColumn,
                sourceRange.RowCount,
                sourceRange.ColumnCount);
    }
    // Im Falle der Arbeitsblätter Produkte2 und Produkte3,
    // schließen Sie die erste Zeile aus (die Überschriften enthält).
    else
    {
        int mdatarow = sourceSheet.Cells.MaxDataRow; // Zero-based
        int mdatacol = sourceSheet.Cells.MaxDataColumn; // Zero-based
        sourceRange = sourceSheet.Cells.CreateRange(0 + 1, 0, mdatarow, mdatacol + 1);

        destRange = summarySheet.Cells.CreateRange(
                sourceRange.FirstRow + totalRowCount -1,
                sourceRange.FirstColumn,
                sourceRange.RowCount,
                sourceRange.ColumnCount);
    }

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

// Speichern Sie die Arbeitsmappe 
workbook.Save("Summarized.xlsx");

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mehrere Excel-Dateien programmgesteuert zu einer kombinieren. Sie können entweder alle Arbeitsblätter einer Quelldatei oder bestimmte in die Zieldatei kopieren. Sie haben auch gelernt, wie Sie Daten aus mehreren Arbeitsblättern in einem Arbeitsblatt kombinieren. Weitere Informationen finden Sie in der Dokumentation von Aspose.Cells für .NET. Wenn Sie Fragen haben, wenden Sie sich bitte an unser Support-Forum. Wir werden sie in ein paar Stunden beantworten.

Siehe auch