Skript zum Zusammenführen von TabellenEntwicklung & Anpassung

Ein Python-Skript, das viele CSV- und Excel-Dateien zu einer Tabelle mit sauber ausgerichteten Spalten zusammenführt

Meist in 15 Minuten fertigÜberarbeitungen inklusiveQualitätsprüfung
Pakete
ZahlungsschutzMehr dazu
  • Überarbeitungen im Rahmen des Pakets sind kostenlos.
  • Reagieren Sie nicht innerhalb von 3 Tagen nach der Lieferung, gilt die Arbeit automatisch als abgenommen.

Das Geld wird bei der Zahlung reserviert und erst freigegeben, wenn Sie die Arbeit abnehmen.

Ein Python-Skript, das viele CSV- und Excel-Dateien zu einer Tabelle mit sauber ausgerichteten Spalten zusammenführt

Beispielergebnis

Beispiel für das Standard-Paket

Monatliche Verkaufsdateien von 9 Läden in einem Excel-Bericht zusammenführen

So wird es gestartet

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Ordner: sales/2026-10, 9 Dateien gefunden
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 Zeilen
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 Zeilen
2026-11-02 09:14:04 WARN  shop-07.csv: 3 Zeilen ohne Preis übersprungen (Zeilen 88, 412, 913)
2026-11-02 09:14:05 INFO  Fertig: 10.412 Zeilen -> report-2026-10.xlsx (Tabellenblätter „Verkäufe“ und „Summen“)

Einstellungen statt Code

Die Spaltennamen jedes Ladens stehen in settings.ini, daher ist ein neuer Laden oder eine umbenannte Spalte nur eine Zeile dort:

[columns]
date = Datum, Verkaufsdatum, Tag
product = Artikel, Produkt, Bezeichnung
quantity = Menge, Anzahl, Stk.
price = Preis, Einzelpreis

Ein Teil des Codes

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Liest die Datei eines Ladens ein und gibt ihr die Spaltennamen des Berichts."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: keine Spalte für '{name}' (gesucht wurde nach {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Dateien: ein ZIP-Archiv mit merge_sales.py (310 Zeilen), settings.ini, requirements.txt und einer README dazu, wie man Python installiert, das Skript startet und was jede Meldung im Protokoll bedeutet. Der Kunde startet es auf seinem eigenen Computer.

Kunde: eine kleine Kette von 9 Schreibwarenläden; jeder Laden schickt seine Monatsverkäufe als CSV- oder Excel-Datei, mit leicht unterschiedlichen Spaltennamen. Aufgabe: ein Skript, das jede Datei in einem Ordner einliest, die Spalten in eine einheitliche Form bringt und einen einzigen Excel-Bericht mit allen Verkäufen und einem Tabellenblatt mit Summen pro Laden schreibt.

Kunde und alle Angaben sind erfunden.

Über diese Leistung

Monatsexporte, Berichte von Filialen, Dateien mehrerer Lieferanten: Wenn dieselben Daten in Dutzenden CSV- und Excel-Dateien ankommen, ist das Zusammenkopieren von Hand langsam und fehleranfällig. Dieses Python-Skript liest jede Datei im festgelegten Ordner, auch mehrere Tabellenblätter einer Arbeitsmappe, richtet die Spalten nach Namen aus, ergänzt eine Spalte mit der Quelldatei und speichert eine CSV- oder Excel-Datei. Ab Standard kommt es mit Spalten zurecht, die in verschiedenen Dateien unterschiedlich heißen, und führt ein Protokoll der Zeilen, die es nicht lesen konnte. Schicken Sie uns zwei oder drei Beispieldateien mit je ein paar Zeilen. Sie führen es selbst auf Ihrem Computer aus. Excel fasst bis zu 1.048.576 Zeilen pro Tabellenblatt, daher wird ein größeres Ergebnis als CSV gespeichert.

Was enthalten ist

  • Das erhalten SieEin ZIP-Archiv mit dem Python-Skript, einer README mit Schritt-für-Schritt-Anleitung und ab Standard einer Einstellungsdatei mit Ihrem Ordner und Ihren Spaltennamen; der Code wird auch auf der Bestellseite angezeigt.
  • CSV und Excel zusammenDateien beider Art in einem Ordner, mehrere Tabellenblätter pro Arbeitsmappe
  • Spalten ausgerichtetNach Namen, auch wenn die Reihenfolge zwischen Dateien abweicht
  • QuellspalteJede Zeile zeigt, aus welcher Datei sie stammt
  • Kodierungen und TrennzeichenKommas oder Semikolons, UTF-8 oder ältere Windows-Kodierungen
  • Lesbarer CodeMit Kommentaren, eine Spalte lässt sich später leicht ergänzen

So funktioniert es

  1. 1
    BeispieleSie schicken zwei oder drei Beispieldateien und sagen, wie das Ergebnis aussehen soll
  2. 2
    CodeWir schreiben das Skript und die Anleitung zum Ausführen
  3. 3
    AusprobierenSie führen es an einer Kopie Ihres Ordners aus und prüfen die Summen
  4. 4
    ÜberarbeitungenSie wünschen Überarbeitungen im Rahmen Ihres Pakets und schicken etwaige Fehlermeldungen

Was wir von Ihnen brauchen

Zwei oder drei der Dateien, die Sie zusammenführen, auf ein paar Zeilen gekürzt (echte Namen oder Beträge können Sie gern ändern), ungefähr wie viele Dateien es sind und wie groß sie werden, und wie das Ergebnis sein soll: CSV oder Excel, welche Spalten in welcher Reihenfolge und ob doppelte Zeilen bleiben sollen. Wenn sich Dateien unterscheiden (andere Spaltennamen, zusätzliche Kopfzeilen), ein Beispiel jeder Art. Ihr System: Windows, macOS oder Linux.

Wir fragen Sie:

  • Welche Dateien führen Sie zusammen?
  • Wie soll das Ergebnis aussehen?
  • Unterscheiden sich die Dateien?
  • Wo wird es ausgeführt?

Pakete vergleichen

PaketeBasisEine Dateiart zusammenführen15 €StandardZusammenführen mit Einstellungen30 €PremiumZusammenführungstool60 €
Lieferzeit1 Tag2 Tage3 Tage
Überarbeitungen123
Codebis zu 150 Zeilenbis zu 400 Zeilenbis zu 1.000 Zeilen
Code-Dateien1bis zu 3bis zu 8
EinstellungsdateiNeinJaJa
Verständliche Fehlermeldungen und ein ProtokollNeinJaJa
Startoptionen und eine Anleitung für den zeitgesteuerten StartNeinNeinJa
Anleitung zu Installation und Start (README)JaJaJa
SprachePythonPythonPython
Bestellen BasisBestellen StandardBestellen Premium

Zahlungsschutz

Sie bezahlen bei der Bestellung, aber das Geld wird nur für abgenommene Arbeit freigegeben.

  • FestpreisDer Paketpreis ändert sich nach der Zahlung nicht mehr.
  • Das Geld wird reserviertBei der Zahlung wird der Betrag nur reserviert. Freigegeben wird er erst, wenn Sie die Arbeit abnehmen.
  • Vor der Lieferung geprüftJedes Ergebnis durchläuft eine Qualitätsprüfung, bevor es Sie erreicht, und Sie sehen es auf der Bestellseite, bevor Sie es abnehmen.
  • Kostenlose ÜberarbeitungenFordern Sie Überarbeitungen im Rahmen Ihres Briefings so oft an, wie das Paket es erlaubt.
  • Abnahme nach 3 TagenWenn Sie die Arbeit innerhalb von 3 Tagen nach der Lieferung weder abnehmen noch eine Überarbeitung anfordern, gilt sie automatisch als abgenommen. Schreiben Sie nach der Lieferung im Bestell-Chat, wartet die Bestellung; sobald wir antworten, können wir die 3 Tage neu starten und teilen das im Chat mit.
  • Neuanfertigung oder volle RückerstattungWenn das Ergebnis nicht Ihrem Briefing entspricht und die Überarbeitungen das nicht behoben haben oder die Arbeit mehr als doppelt so lange dauert wie die Frist, schreiben Sie im Bestell-Chat: Wir erstellen die Arbeit neu oder erstatten die Zahlung vollständig.
So funktioniert es →

Fragen und Antworten

Was, wenn die Dateien unterschiedliche Spalten haben?

Ab Standard listen Sie in der Einstellungsdatei auf, welche Namen dieselbe Spalte meinen, zum Beispiel Preis, Kosten und Summe. Spalten, die es nur in manchen Dateien gibt, bleiben erhalten, mit leeren Zellen in den übrigen Zeilen.

Bleiben Formeln und Formatierung erhalten?

Nein. Es führt die Werte zusammen: das, was Sie in den Zellen sehen. Farben, verbundene Zellen und Formeln werden nicht übernommen.

Wie viele Dateien schafft es?

Hunderte Dateien sind auf einem normalen Computer kein Problem. Die Grenze ist das Ergebnis: Mehr als 1.048.576 Zeilen passen nicht auf ein Excel-Tabellenblatt, daher wird es als CSV gespeichert.

Muss ich Ihnen meine echten Dateien schicken?

Nein. Ein paar Zeilen jeder Dateiart genügen, und Sie können Namen und Beträge durch erfundene ersetzen. Das Skript läuft dann auf Ihrem Computer mit Ihren echten Dateien.

Keine Antwort gefunden?

Pakete