PDF-Tabellen zu ExcelEntwicklung & Anpassung

Ein Python-Skript, das die Tabellen aus Ihren PDF-Berichten, Preislisten oder Auszügen nach Excel holt

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 die Tabellen aus Ihren PDF-Berichten, Preislisten oder Auszügen nach Excel holt

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

Preislisten von Lieferanten, Bank- oder Marktplatzberichte und Bestandslisten kommen oft nur als PDF, und beim Kopieren ihrer Tabellen nach Excel zerfallen die Spalten. Dieses Python-Skript liest die Tabellen Ihrer PDFs und schreibt sie mit korrekten Spalten nach Excel oder CSV: Es fügt eine Tabelle zusammen, die über viele Seiten läuft, entfernt wiederholte Kopfzeilen und Seitenfüße und macht ab Standard aus 1 234,50 oder (120.00) echte Zahlen und aus Datumsangaben echte Datumswerte. Es ist auf den Aufbau Ihrer Dateien abgestimmt, schicken Sie also ein oder zwei typische PDFs oder denselben Aufbau mit erfundenen Zahlen. Das PDF muss echten Text enthalten, wie die meisten aus einem Programm gespeicherten Dateien; Scans und Fotos von Papier brauchen eine Texterkennung, die nicht enthalten ist. Sie führen das Skript selbst aus und prüfen 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 Spaltennamen und Seiten; der Code wird auch auf der Bestellseite angezeigt.
  • Auf Ihren Aufbau abgestimmtErstellt und getestet an den Beispieldateien, die Sie schicken
  • Spalten an ihrem PlatzEine Zeile im PDF ist eine Zeile in Excel
  • Viele Seiten zusammengefügtEine lange Tabelle wird zu einem Tabellenblatt ohne wiederholte Kopfzeilen
  • Echte ZahlenAb Standard Beträge und Datumsangaben, die Sie summieren und sortieren können
  • Lesbarer CodeMit Kommentaren, leicht anzupassen, wenn sich der Aufbau ändert

So funktioniert es

  1. 1
    BeispieleSie schicken ein oder zwei typische PDFs und zeigen die benötigte Tabelle
  2. 2
    CodeWir schreiben das Skript für diesen Aufbau und die Anleitung zum Ausführen
  3. 3
    AusprobierenSie führen es mit Ihren Dateien aus und vergleichen die Summen mit dem PDF
  4. 4
    ÜberarbeitungenSie wünschen Überarbeitungen im Rahmen Ihres Pakets und schicken etwaige Fehlermeldungen

Was wir von Ihnen brauchen

Ein oder zwei typische PDFs der Art, die Sie erhalten (oder derselbe Aufbau mit erfundenen Namen und Zahlen), welche Tabelle auf welchen Seiten Sie brauchen und welche Spalten in Excel erscheinen sollen. Wie Zahlen darin geschrieben sind (Kommas, Leerzeichen, Minuszeichen oder Klammern) und das Datumsformat. Ob alle Ihre Dateien denselben Aufbau haben oder es mehrere Arten gibt, ungefähr wie viele Dateien Sie verarbeiten und Ihr System: Windows, macOS oder Linux.

Wir fragen Sie:

  • Um welche PDFs geht es?
  • Welche Spalten brauchen Sie in Excel?
  • Sehen alle Ihre Dateien gleich aus?
  • Wo wird es ausgeführt?

Pakete vergleichen

PaketeBasisEin Tabellenaufbau15 €StandardTabellen mit Einstellungen30 €PremiumTabellentool60 €
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

Funktioniert es mit jedem PDF?

Es ist für den Aufbau Ihrer Beispieldateien gemacht. Wenn Ihr Lieferant den Aufbau ändert, muss das Skript eventuell angepasst werden. PDFs ohne echten Text, etwa Scans, sind nicht abgedeckt.

Woran erkenne ich, ob mein PDF echten Text hat?

Öffnen Sie es und versuchen Sie, ein Wort mit der Maus zu markieren. Wenn Sie es markieren und kopieren können, ist der Text echt. Wenn sich die ganze Seite als ein Bild markiert, ist es ein Scan.

Kann es sich irren?

Ja, PDF-Tabellen sind nicht als Tabellen gespeichert, daher kann eine ungewöhnliche Zeile eine Reihe zerlegen. Deshalb protokolliert das Skript Seiten, bei denen es unsicher war, und Sie sollten die Summen mit dem PDF vergleichen, bevor Sie das Ergebnis verwenden.

Muss ich echte Berichte schicken?

Nein. Derselbe Aufbau mit erfundenen Zahlen funktioniert genauso gut, und das Skript läuft dann auf Ihrem Computer mit Ihren echten Dateien.

Keine Antwort gefunden?

Pakete