Excel-Berichte mit Python automatisieren: ein Praxisbeispiel

Wenn in Ihrem Unternehmen jemand jede Woche Exporte zusammenführt, Spalten kopiert und denselben Bericht von Hand erstellt, zeigt dieser Ratgeber, wie ein Skript das übernimmt — in Sekunden und ohne Fehler.

4 Min. Lesezeit

In vielen Unternehmen wiederholt sich jeden Montag dieselbe Szene: Jemand lädt Exporte aus Buchhaltungssoftware, Onlineshop oder Kassensystem herunter, öffnet fünf Excel-Dateien, kopiert Spalten, korrigiert Datumsangaben, baut eine Pivot-Tabelle und schickt den Bericht an die Geschäftsleitung. Zwei Stunden Arbeit — jede Woche, mit realem Fehlerrisiko.

Diese Aufgabe ist ein perfekter Kandidat für Automatisierung. Unten finden Sie ein konkretes Beispiel für ein Python-Skript, das sie übernimmt.

Was wir automatisieren

Beispiel: Ein Unternehmen hat mehrere Filialen und erhält aus seiner Software Verkaufsexporte im CSV- und Excel-Format. Ziel ist eine Excel-Datei mit drei Blättern:

  • Nach Filiale — Gesamtumsatz pro Filiale, absteigend sortiert;
  • Nach Woche — Umsatz nach Wochen und Filialen;
  • Alle Daten — die bereinigten, zusammengeführten Daten zur weiteren Prüfung.

Was Sie brauchen

  • Python (kostenlos, von python.org),
  • die Bibliotheken pandas (Tabellenverarbeitung) und openpyxl (Schreiben von .xlsx-Dateien), installiert mit einem Befehl: pip install pandas openpyxl,
  • einen Ordner mit den Exporten, z. B. exporte/.

Das vollständige Codebeispiel

from pathlib import Path
from datetime import date
import pandas as pd

EINGANG = Path("exporte")    # Ordner mit Exporten aus der Software
AUSGANG = Path("berichte")   # hier entsteht der fertige Bericht
AUSGANG.mkdir(exist_ok=True)

# 1) Alle Exporte (CSV und Excel) in eine Tabelle laden
teile = []
for datei in sorted(EINGANG.glob("*")):
    if datei.suffix == ".csv":
        df = pd.read_csv(datei, sep=";", decimal=",", encoding="utf-8")
    elif datei.suffix in (".xlsx", ".xls"):
        df = pd.read_excel(datei)
    else:
        continue
    df["Quelle"] = datei.name
    teile.append(df)
umsatz = pd.concat(teile, ignore_index=True)

# 2) Daten bereinigen
umsatz["Datum"] = pd.to_datetime(umsatz["Datum"], dayfirst=True)
umsatz["Filiale"] = umsatz["Filiale"].str.strip().str.title()
umsatz = umsatz.dropna(subset=["Betrag"]).drop_duplicates()

# 3) Auswertungen: nach Filiale und nach Woche
nach_filiale = (umsatz.groupby("Filiale", as_index=False)["Betrag"]
                .sum().sort_values("Betrag", ascending=False))
nach_woche = umsatz.pivot_table(index=umsatz["Datum"].dt.isocalendar().week,
                                columns="Filiale", values="Betrag",
                                aggfunc="sum", fill_value=0)

# 4) Fertigen Bericht schreiben — jede Tabelle auf ein eigenes Blatt
datei = AUSGANG / f"umsatz_{date.today():%Y-%m-%d}.xlsx"
with pd.ExcelWriter(datei, engine="openpyxl") as xls:
    nach_filiale.to_excel(xls, sheet_name="Nach Filiale", index=False)
    nach_woche.to_excel(xls, sheet_name="Nach Woche")
    umsatz.to_excel(xls, sheet_name="Alle Daten", index=False)

print("Bericht fertig:", datei)

Was das Skript Schritt für Schritt macht

1. Exporte zusammenführen

Das Skript geht alle Dateien im Ordner durch, liest CSV- und Excel-Dateien ein und führt sie in einer Tabelle zusammen. Die Spalte Quelle merkt sich, aus welcher Datei jede Zeile stammt — nützlich bei der Fehlersuche. Die Parameter sep=";" und decimal="," sind nötig, weil Exporte aus europäischer Software oft Semikolon und Dezimalkomma verwenden.

2. Daten bereinigen

Datumsangaben im Format Tag.Monat.Jahr werden zu echten Datumswerten, Filialnamen werden vereinheitlicht (Leerzeichen, Groß- und Kleinschreibung), leere und doppelte Zeilen werden entfernt. Genau hier passieren bei Handarbeit die meisten Fehler.

3. Auswertungen

groupby summiert den Umsatz pro Filiale, pivot_table erstellt eine Tabelle nach Wochen — dasselbe wie eine Pivot-Tabelle in Excel, nur ohne Klicken.

4. Eine fertige Excel-Datei

Das Ergebnis ist eine normale .xlsx-Datei mit Datum im Namen, die sich öffnen, versenden oder weiterbearbeiten lässt. Mit openpyxl können Sie außerdem Formatierung, Spaltenbreiten, Diagramme oder automatischen E-Mail-Versand ergänzen.

Automatische Ausführung

Am wertvollsten ist ein Skript, wenn es von selbst läuft:

  • Windows: In der Aufgabenplanung eine Aufgabe anlegen, die jeden Montag um 7:00 Uhr python bericht.py startet.
  • Linux-Server: eine Zeile in cron, z. B. 0 7 * * 1 python3 /pfad/bericht.py.

Wenn der Mitarbeiter morgens kommt, wartet der Bericht bereits im Ordner oder im Postfach.

Wann sich Automatisierung lohnt — und wann nicht

Sie lohnt sich, wenn sich dieselbe Arbeit wiederholt (wöchentlich oder täglich), mehrere Datenquellen beteiligt sind und Fehler teuer werden. Die Rechnung ist einfach: Zwei Stunden pro Woche sind rund 100 Stunden im Jahr.

Sie lohnt sich nicht für einen Bericht, der einmal im Jahr entsteht oder dessen Format sich ständig ändert. Und für einfache Fälle direkt in Excel lohnt ein Blick auf Power Query — ein eingebautes Werkzeug, das Tabellen ohne Programmierung zusammenführen und bereinigen kann.

Tipp aus der Praxis

Schreiben Sie den Prozess vor der Automatisierung Schritt für Schritt auf — so, wie der Mitarbeiter ihn tatsächlich ausführt. Die Hälfte der Probleme löst sich schon dabei, weil sichtbar wird, welche Schritte gar nicht nötig sind.

Wie es weitergeht

Dieses Beispiel ist bewusst einfach. In echten Projekten holt das Skript die Daten oft direkt per API oder aus der Datenbank, verschickt den Bericht per E-Mail, markiert ungewöhnliche Werte oder speist ein Dashboard im Browser. Sehen Sie sich an, was die Leistung Webanwendungen und Automatisierung umfasst, und für Produktionsbetriebe Beispiele für Software in der Produktion.

Engimotive · Veröffentlicht 27. Oktober 2026

FAQ

Häufige Fragen

Brauche ich einen Programmierer, um so ein Skript zu nutzen?

Für Einrichtung und Anpassung — ja, oder zumindest jemanden, der sich mit Python auskennt. Für die tägliche Nutzung — nein. Ein fertiges Skript startet per Doppelklick oder automatisch zu einer festen Zeit, und das Ergebnis ist eine ganz normale Excel-Datei.

Was passiert, wenn sich das Exportformat ändert?

Dann muss das Skript angepasst werden — meist eine kleine Änderung. Ein gutes Skript prüft, ob alle erwarteten Spalten vorhanden sind, und meldet einen klaren Fehler, statt still einen falschen Bericht zu erzeugen.

Sind die Daten sicher?

Das Skript läuft auf Ihrem Rechner oder Server und sendet keine Daten nach außen, sofern Sie das nicht ausdrücklich programmieren. Das ist einer der Vorteile gegenüber Online-Diensten für Tabellenverarbeitung.

Kontakt

Projekt geplant? Lassen Sie uns sprechen.

Beschreiben Sie Ihre Idee in wenigen Sätzen. Ich antworte persönlich innerhalb von 24 Stunden an Werktagen — mit einem konkreten Vorschlag für die nächsten Schritte.

E-Mailinfo@engimotive.com
StandortZenica, Bosnien und Herzegowina
ArbeitsweiseRemote — DACH-Region und ganz Europa

So geht es weiter: Antwort mit ein paar Fragen → kurzes Gespräch → Festpreisangebot. Unverbindlich.

Mit * markierte Felder sind Pflichtfelder. Ihre Angaben verwende ich nur zur Beantwortung Ihrer Anfrage. Datenschutzerklärung.