
Wenn Sie mit Berichten arbeiten, die aus verschiedenen Systemen exportiert wurden, haben Sie es häufig mit Dutzenden von CSV-Dateien zu tun. Beispielsweise kann jede Abteilung, jede Filiale oder jeder Monat einen eigenen CSV-Bericht generieren. Während dies die Datenerfassung vereinfacht, wird die Verwaltung einer großen Anzahl separater Dateien schnell unhandlich.
Eine praktische Lösung besteht darin, alle CSV-Dateien in einer Excel-Arbeitsmappe zu kombinieren, wobei jede CSV-Datei als separates Arbeitsblatt erhalten bleibt. Dies bewahrt die ursprüngliche Dateistruktur, erleichtert die Navigation und ermöglicht es Ihnen, eine einzige Arbeitsmappe anstelle vieler einzelner Dateien weiterzugeben.
In diesem Artikel stellen wir drei praktische Methoden vor – von einem einfachen manuellen Ansatz über die Excel-Automatisierung mit VBA bis hin zu einer vollständig programmatischen Python-Lösung.
Behandelte Methoden:
- Methode 1. CSV-Dateien kopieren und in separate Arbeitsblätter einfügen
- Methode 2. Verwendung eines VBA-Makros zum Importieren mehrerer CSV-Dateien
- Methode 3. Zusammenführen mehrerer CSV-Dateien in Python mit Spire.XLS
Methode 1. CSV-Dateien kopieren und in separate Arbeitsblätter einfügen
Wenn Sie nur wenige CSV-Dateien zusammenführen müssen, ist die einfachste Lösung, deren Inhalte manuell in verschiedene Arbeitsblätter zu kopieren.
Ein wichtiges Detail ist, dass Sie jede CSV-Datei mit Microsoft Excel öffnen sollten, anstatt mit einem Texteditor wie Notepad. Wenn eine CSV-Datei in Excel geöffnet wird, werden ihre Zeilen und Spalten basierend auf dem Trennzeichen korrekt analysiert. Wenn Sie den Text direkt aus Notepad kopieren, fügt Excel möglicherweise alles in eine einzige Spalte ein, anstatt die Werte automatisch zu trennen.

Schritte
- Öffnen Sie Microsoft Excel und erstellen Sie eine neue Arbeitsmappe.
- Öffnen Sie die erste CSV-Datei mit Excel.
- Markieren Sie alle Daten (Strg + A) und kopieren Sie diese (Strg + C).
- Kehren Sie zur neuen Arbeitsmappe zurück und fügen Sie die Daten in das erste Arbeitsblatt ein.
- Benennen Sie das Arbeitsblatt bei Bedarf um.
- Wiederholen Sie den Vorgang für jede weitere CSV-Datei und erstellen Sie jedes Mal ein neues Arbeitsblatt.
- Speichern Sie die Arbeitsmappe als .xlsx-Datei.
Vorteile
- Keine Programmierung erforderlich.
- Funktioniert in jeder Excel-Installation.
- Behält eine CSV-Datei pro Arbeitsblatt bei.
- Ideal für gelegentliche Aufgaben mit nur wenigen Dateien.
Nachteile
- Zeitaufwendig bei der Verarbeitung vieler Dateien.
- Rein manuell.
- Fehleranfällig bei der Handhabung von Dutzenden von CSV-Dateien.
Methode 2. Verwendung eines VBA-Makros zum Importieren mehrerer CSV-Dateien
Wenn Sie diese Aufgabe häufig in Excel ausführen, kann ein VBA-Makro den gesamten Prozess automatisieren. Das Makro durchsucht einen Ordner, öffnet jede CSV-Datei, kopiert deren Arbeitsblatt in die aktuelle Arbeitsmappe und benennt das Arbeitsblatt nach der CSV-Datei.

Schritt 1. Eine leere Arbeitsmappe erstellen
Öffnen Sie Excel und erstellen Sie eine neue Arbeitsmappe. Diese Arbeitsmappe dient als Ziel-Arbeitsmappe, in der alle importierten Arbeitsblätter gespeichert werden.
Schritt 2. Den VBA-Editor öffnen
Drücken Sie Alt + F11, um den Visual Basic-Editor zu öffnen.
Wählen Sie Einfügen > Modul und fügen Sie den folgenden Code in das neue Modul ein.
Sub MergeCSVFilesToSheets()
Dim folderPath As String
Dim fileName As String
Dim wbCSV As Workbook
Dim ws As Worksheet
Dim targetWb As Workbook
Dim sheetName As String
Set targetWb = ThisWorkbook
folderPath = InputBox("Geben Sie den Ordnerpfad mit den CSV-Dateien ein:")
If Right(folderPath, 1) <> "\" Then
folderPath = folderPath & "\"
End If
fileName = Dir(folderPath & "*.csv")
Application.ScreenUpdating = False
Do While fileName <> ""
Workbooks.Open folderPath & fileName
Set wbCSV = ActiveWorkbook
sheetName = Left(fileName, InStrRev(fileName, ".") - 1)
wbCSV.Worksheets(1).Copy After:=targetWb.Sheets(targetWb.Sheets.Count)
Set ws = targetWb.Sheets(targetWb.Sheets.Count)
On Error Resume Next
ws.Name = Left(sheetName, 31)
On Error GoTo 0
wbCSV.Close SaveChanges:=False
fileName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "CSV-Dateien wurden erfolgreich zusammengeführt."
End Sub
Schritt 3. Das Makro ausführen
Drücken Sie F5, geben Sie den Ordner mit Ihren CSV-Dateien ein, und das Makro importiert automatisch jede CSV-Datei in ein eigenes Arbeitsblatt.
Vorteile
- Viel schneller als manuelles Kopieren.
- Läuft vollständig innerhalb von Microsoft Excel.
- Erstellt automatisch ein Arbeitsblatt für jede CSV-Datei.
- Geeignet für Benutzer, die regelmäßig mit Excel arbeiten.
Nachteile
- Erfordert makrofähige Arbeitsmappen.
- Benutzer müssen VBA-Makros aktivieren.
- Weniger geeignet für unbeaufsichtigte oder serverseitige Automatisierung.
Methode 3. Zusammenführen mehrerer CSV-Dateien in Python mit Spire.XLS
Für wiederkehrende Arbeitsabläufe, geplante Aufgaben oder Geschäftsanwendungen ist die programmatische Automatisierung oft die effizienteste Lösung.
Viele Entwickler denken bei der CSV-Verarbeitung sofort an Pandas. Pandas ist eine hervorragende Bibliothek zum Lesen, Analysieren und Transformieren tabellarischer Daten. Ihr Hauptfokus liegt jedoch auf der Datenanalyse und nicht auf der Dokumentenerstellung.
Wenn Ihr Arbeitsablauf über das bloße Importieren von CSV-Dateien hinausgeht – zum Beispiel Arbeitsblätter formatieren, Stile anwenden, Diagramme einfügen, Arbeitsmappen schützen oder die fertige Arbeitsmappe als PDF exportieren –, bietet eine Tabellenkalkulationsbibliothek wie Free Spire.XLS for Python eine vollständigere Lösung.
Installieren Sie zunächst die Bibliothek:
pip install Spire.XLS
Verwenden Sie dann den folgenden Code, um jede CSV-Datei in einem Ordner in einer einzigen Excel-Arbeitsmappe zusammenzuführen, wobei jede CSV-Datei zu einem separaten Arbeitsblatt wird.
import os
from spire.xls import Workbook, WorksheetCopyType, FileFormat
input_folder = "input"
output_folder = "output"
# Ziel-Arbeitsmappe erstellen
merged_workbook = Workbook()
merged_workbook.Worksheets.Clear()
# Jede CSV-Datei verarbeiten
for csv_file in os.listdir(input_folder):
if csv_file.endswith(".csv"):
input_path = os.path.join(input_folder, csv_file)
workbook = Workbook()
workbook.LoadFromFile(input_path, ",", 1, 1)
sheet = workbook.Worksheets[0]
merged_workbook.Worksheets.AddCopy(
sheet,
WorksheetCopyType.CopyAll
)
merged_workbook.SaveToFile(
os.path.join(output_folder, "Merged.xlsx"),
FileFormat.Version2013
)
Ausgabe:

Im Vergleich zu manuellen Methoden oder VBA lässt sich dieser Ansatz viel einfacher in automatisierte Arbeitsabläufe integrieren. Nach dem Generieren der Arbeitsmappe können Sie diese mit Spire.XLS weiterverarbeiten – zum Beispiel:
- Schriftarten, Farben, Rahmen und Zahlenformate anwenden.
- Fenster fixieren oder Spaltenbreiten automatisch anpassen.
- Diagramme und Pivot-Tabellen erstellen.
- Arbeitsblätter oder die Arbeitsmappe schützen.
- Die fertige Arbeitsmappe in PDF oder andere Formate exportieren.
Diese Funktionen machen es nicht nur für das Zusammenführen von CSV-Dateien geeignet, sondern auch für End-to-End-Berichterstellungspipelines.
Vergleich der drei Methoden
| Methode | Programmierung erforderlich | Stapelverarbeitung | Am besten geeignet für |
|---|---|---|---|
| Kopieren und Einfügen | Nein | Begrenzt | Einmalige Aufgaben mit nur wenigen CSV-Dateien |
| VBA-Makro | Grundlegendes VBA | Ja | Excel-Benutzer, die regelmäßig CSV-Dateien importieren |
| Python + Free Spire.XLS | Python | Hervorragend | Automatisierte Arbeitsabläufe, Geschäftsanwendungen und Stapelverarbeitung |
Fazit
Die beste Methode hängt davon ab, wie oft Sie die Aufgabe ausführen müssen.
Wenn Sie nur gelegentlich einige CSV-Dateien kombinieren müssen, ist das manuelle Kopieren und Einfügen der Daten in separate Arbeitsblätter die schnellste Lösung.
Wenn Sie hauptsächlich in Excel arbeiten und diese Aufgabe regelmäßig ausführen, kann ein VBA-Makro den Prozess mit minimalem Aufwand automatisieren.
Für Entwickler, die wiederholbare Arbeitsabläufe erstellen oder die CSV-Verarbeitung in Anwendungen integrieren, bietet Python mit Spire.XLS die größte Flexibilität. Über das Zusammenführen von CSV-Dateien hinaus ermöglicht es eine erweiterte Tabellenkalkulationsbearbeitung und Dokumentenerstellung, was es für eine Vielzahl von Automatisierungsszenarien geeignet macht.
Häufig gestellte Fragen (FAQs)
Kann ich Hunderte von CSV-Dateien in einer Excel-Arbeitsmappe zusammenführen?
Ja. VBA kann viele Dateien verarbeiten, aber für sehr große Stapel oder automatisierte Arbeitsabläufe ist eine Python-Lösung im Allgemeinen zuverlässiger und skalierbarer.
Wird jede CSV-Datei zu einem eigenen Arbeitsblatt?
Ja. Alle drei in diesem Artikel beschriebenen Methoden bewahren jede CSV-Datei als separates Arbeitsblatt, anstatt alle Daten in einem einzigen Blatt zu kombinieren.
Können die Namen der Arbeitsblätter auf den CSV-Dateinamen basieren?
Ja. Sowohl das VBA-Makro als auch das Python-Beispiel verwenden automatisch den CSV-Dateinamen (ohne Erweiterung) als Namen für das Arbeitsblatt.
Was ist, wenn meine CSV-Dateien UTF-8 oder andere Kodierungen verwenden?
Die meisten CSV-Dateien können problemlos importiert werden. Wenn Ihre Dateien eine andere Kodierung oder ein anderes Trennzeichen verwenden, passen Sie die Importeinstellungen vor der Verarbeitung entsprechend an.
Kann ich die Arbeitsmappe nach dem Zusammenführen der CSV-Dateien weiter bearbeiten?
Absolut. Nachdem die Arbeitsmappe erstellt wurde, können Sie Arbeitsblätter formatieren, Diagramme einfügen, Formeln hinzufügen, die Arbeitsmappe schützen oder sie wie jede andere Excel-Datei als PDF exportieren.