Täglicher Bericht per E-MailEntwicklung & Anpassung

Ein Python-Skript, das aus Ihren Excel-Dateien einen kurzen Bericht erstellt und ihn aus Ihrem eigenen Postfach per E-Mail verschickt

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 aus Ihren Excel-Dateien einen kurzen Bericht erstellt und ihn aus Ihrem eigenen Postfach per E-Mail verschickt

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

Wenn jemand im Büro jeden Morgen dieselbe Excel-Datei öffnet, die Summen kopiert und in eine E-Mail schreibt, kann dieses Python-Skript diesen Teil übernehmen. Es liest die Dateien, die Sie nennen, etwa den Verkaufsexport von gestern oder eine Bestandstabelle in einem gemeinsamen Ordner, berechnet, was Sie wünschen (Summen, Anzahlen, Durchschnitte nach Filiale oder Produkt, Zeilen über einem Grenzwert), und sendet eine kurze E-Mail mit einer übersichtlichen Tabelle an die Personen auf Ihrer Liste, aus Ihrem eigenen E-Mail-Konto, ab Standard mit der Datei im Anhang. Das Versandpasswort des E-Mail-Kontos tragen Sie selbst in die Einstellungen ein; es kommt nie in den Code. Die Empfänger sind Ihre eigenen Kollegen oder Kunden, weit innerhalb der Versandlimits Ihres E-Mail-Dienstes. Es berichtet die Zahlen in Ihren Dateien; es prüft oder erklärt sie nicht.

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 Dateien, Empfängern und E-Mail-Einstellungen; der Code wird auch auf der Bestellseite angezeigt.
  • Ihre KennzahlenSummen, Anzahlen und Durchschnitte nach Ihrer Wahl
  • Eine gut lesbare E-MailEine kurze Tabelle, die sich auf dem Smartphone öffnen lässt
  • Aus Ihrem PostfachIhr eigenes E-Mail-Konto, Passwort nicht im Code
  • Datei im AnhangAb Standard die Excel-Datei oder eine Zusammenfassung davon
  • Lesbarer CodeMit Kommentaren, eine Kennzahl lässt sich später leicht ergänzen

So funktioniert es

  1. 1
    AufgabeSie schicken eine Beispieldatei und ein Beispiel der gewünschten E-Mail
  2. 2
    CodeWir schreiben das Skript und die Anleitung zum Ausführen
  3. 3
    AusprobierenSie starten es mit nur Ihrer eigenen Adresse auf der Liste
  4. 4
    ÜberarbeitungenSie wünschen Überarbeitungen im Rahmen Ihres Pakets und schicken etwaige Fehlermeldungen

Was wir von Ihnen brauchen

Eine der Excel-Dateien, aus denen der Bericht entsteht, auf ein paar Zeilen gekürzt oder mit geänderten Zahlen, wo die Dateien erscheinen (ein Ordner, ein gemeinsames Laufwerk) und wie sie heißen, was die E-Mail zeigen soll (schreiben Sie sie so aus, wie Sie es von Hand täten), wer sie bekommt und von welchem E-Mail-Konto (der Name des E-Mail-Dienstes genügt; das Passwort tragen Sie selbst ein). Wann sie rausgehen soll und auf welchem Computer es laufen wird: Windows, macOS oder Linux.

Wir fragen Sie:

  • Aus welchen Dateien entsteht der Bericht?
  • Was soll die E-Mail zeigen?
  • Wer bekommt sie, und wann?
  • Wo wird es ausgeführt?

Pakete vergleichen

PaketeBasisEin Bericht15 €StandardBericht mit Einstellungen30 €PremiumBerichtstool60 €
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

Sendet es den Bericht jeden Tag von selbst?

Es sendet bei jedem Lauf einen Bericht. Premium enthält eine Anleitung, es jeden Morgen mit der Aufgabenplanung, cron oder launchd zu starten; mit Basis oder Standard starten Sie es selbst oder richten das eigenständig ein. Der Computer muss zu dieser Zeit eingeschaltet sein.

Mit welchen E-Mail-Konten funktioniert es?

Mit den meisten Diensten, die den Versand über SMTP erlauben, darunter gängige geschäftliche und private E-Mail-Konten. Manche verlangen dafür ein App-Passwort; die README zeigt, wo Sie es erstellen.

Meine Dateien liegen in Google Tabellen, nicht in Excel. Geht das?

Dafür eignet sich ein Google Apps Script in der Tabelle besser, das aus Ihrem Gmail sendet; sagen Sie es im Briefing, und wir schreiben es stattdessen in Apps Script.

Kann es den Bericht an meine Kunden senden?

Ja, an Personen, die ihn erwarten, etwa Kunden, die eine tägliche Bestandsliste angefragt haben. Es ist nicht für Massenmails gedacht und nicht für Listen, die Sie nicht selbst aufgebaut haben.

Keine Antwort gefunden?

Pakete