Kontoauszug-KonverterEntwicklung & Anpassung

Ein Python-Skript, das den CSV-Kontoauszug Ihrer Bank in das Importformat Ihres Buchhaltungsprogramms umwandelt

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 den CSV-Kontoauszug Ihrer Bank in das Importformat Ihres Buchhaltungsprogramms umwandelt

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

Banken exportieren Kontoauszüge in ihrem eigenen CSV-Aufbau, und Buchhaltungsprogramme wollen ihren: andere Spaltennamen, Datumsangaben als TT.MM.JJJJ oder JJJJ-MM-TT, ein Betrag mit Minuszeichen oder getrennt nach Soll und Haben, eine bestimmte Kodierung. Dieses Python-Skript wandelt den Auszug, den Sie aus Ihrem Onlinebanking herunterladen, nach der Vorlage oder Beispieldatei Ihres Programms in dessen Importdatei um. Ab Standard kann es jede Zeile außerdem nach Ihren Regeln einer Kategorie zuordnen, etwa Zahlungen mit „Miete“ zu Miete. Es läuft auf Ihrem Computer und verbindet sich nie mit Ihrer Bank oder Ihrem Buchhaltungsprogramm; Sie laden den Auszug herunter und importieren das Ergebnis selbst. Es ändert nur den Aufbau, nicht die Zahlen, und gibt keine Buchhaltungs- oder Steuerberatung. Prüfen Sie nach dem ersten Import die Summen.

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 Spalten und Kategorieregeln; der Code wird auch auf der Bestellseite angezeigt.
  • Das Format Ihres ProgrammsNach seiner Importvorlage oder einer Beispieldatei
  • Datum und Beträge korrektFormate, Vorzeichen und Dezimaltrennzeichen umgewandelt
  • Kategorien nach Ihren RegelnAb Standard nach Stichwörtern, die Sie festlegen
  • Bleibt auf Ihrem ComputerKeine Verbindung zur Bank oder sonst wohin
  • Lesbarer CodeMit Kommentaren, eine Regel lässt sich später leicht ergänzen

So funktioniert es

  1. 1
    BeispieleSie schicken erfundene Zeilen im Aufbau Ihrer Bank und die Vorlage Ihres Programms
  2. 2
    CodeWir schreiben das Skript und die Anleitung zum Ausführen
  3. 3
    AusprobierenSie wandeln einen Auszug um, importieren ihn in eine Testfirma oder Testperiode und prüfen die Summen
  4. 4
    ÜberarbeitungenSie wünschen Überarbeitungen im Rahmen Ihres Pakets und schicken etwaige Fehlermeldungen

Was wir von Ihnen brauchen

Die Kopfzeile und 10–20 Zeilen der CSV Ihrer Bank mit erfundenen Beträgen, Namen und Kontonummern, aber demselben Aufbau, der Name Ihres Buchhaltungsprogramms und seine Importvorlage, Dokumentationsseite oder eine Beispieldatei, die es akzeptiert. Für Standard Ihre Kategorieregeln (welche Wörter zu welcher Kategorie gehören). Für Premium ein Beispiel von jeder Bank oder jedem Konto. Schicken Sie nie echte Kontoauszüge, Kontonummern oder Bankzugangsdaten.

Wir fragen Sie:

  • Welchen Bankexport haben Sie?
  • Welches Buchhaltungsprogramm, und welches Importformat?
  • Brauchen Sie Kategorien?
  • Wie viele Banken oder Konten?

Pakete vergleichen

PaketeBasisEine Bank, ein Format15 €StandardKonverter mit Einstellungen30 €PremiumKonverter-Tool60 €
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

Verbindet es sich mit meiner Bank?

Nein. Sie laden den Auszug wie gewohnt aus Ihrem Onlinebanking herunter, und das Skript wandelt die Datei auf Ihrem Computer um. Sein Code hat keinen Internetzugriff.

Meine Bank liefert nur PDF-Auszüge.

Diese Leistung arbeitet mit CSV oder Excel. Wenn das PDF echten Text enthält, sehen Sie sich unsere Leistung für Tabellen aus PDF nach Excel an; gescannte Auszüge sind nicht abgedeckt.

Sind die Kategorien für meine Steuern korrekt?

Das Skript wendet die Stichwortregeln an, die Sie vorgeben; es entscheidet nicht, wie etwas gebucht oder versteuert wird. Das ist Sache von Ihnen oder Ihrem Steuerberater, und wir geben keine Steuer- oder Buchhaltungsberatung.

Was, wenn meine Bank ihren Export ändert?

Ab Standard stehen die Spaltennamen in der Einstellungsdatei, daher ist eine umbenannte Spalte eine kleine Änderung. Ein neuer Aufbau kann eine Anpassung des Skripts erfordern.

Keine Antwort gefunden?

Pakete