Tabellen vs. Klartext: Warum es wichtig ist
Überprüfen Sie vor der Auswahl einer Methode, welche Art von Daten Ihr PDF enthält. Der Ansatz hängt vollständig von der PDF-Struktur ab:
| PDF-Typ | Was es enthält | Beste Methode |
|---|---|---|
| Native Tabellen | Textbasiertes PDF mit sichtbaren Tabellengrenzen und Gitternetzlinien | Jede Methode — CleverUtils ist am schnellsten |
| Randlose Tabellen | Spalten nach Abstand ausgerichtet, kein sichtbares Gitter | Python (pdfplumber) für Präzision |
| Gescanntes PDF | Bild einer gedruckten Seite (kein wählbarer Text) | CleverUtils mit aktivierter OCR |
| Gemischter Inhalt | Tabellen + Absätze + Überschriften auf der gleichen Seite | Python für selektive Extraktion |
Schnelltest: Öffnen Sie Ihr PDF und versuchen Sie, Text mit Ihrer Maus auszuwählen. Wenn Sie einzelne Wörter markieren können, handelt es sich um ein natives (textbasiertes) PDF. Wenn sich die ganze Seite als ein Block auswählt, handelt es sich um ein gescanntes Bild — Sie benötigen OCR.
Methode 1: Online mit CleverUtils konvertieren
Die schnellste Option für die meisten Benutzer. CleverUtils verarbeitet native PDFs, randlose Tabellen und sogar gescannte Dokumente mit OCR. Keine Installation, kein Konto erforderlich.
- Gehen Sie zu cleverutils.com/de/pdf-to-csv
- Laden Sie Ihr PDF hoch — Ziehen und ablegen oder klicken Sie auf „PDF-Datei auswählen". Max. 100 MB.
- Für gescannte PDFs: Wählen Sie Ihre OCR-Sprache aus dem Dropdown aus, bevor Sie konvertieren.
- Klicken Sie auf „In CSV konvertieren" — Die Konvertierung dauert für die meisten Dateien einige Sekunden.
- Laden Sie das CSV herunter — Öffnen Sie es in Excel, Google Sheets oder importieren Sie es in Ihre Datenbank.
CleverUtils verarbeitet alle Seiten Ihres PDF und kombiniert die extrahierten Daten in einer einzigen CSV-Datei. Dateien werden während der Übertragung verschlüsselt und innerhalb von 2 Stunden automatisch gelöscht.
Methode 2: Python mit pdfplumber
pdfplumber ist die beste Python-Bibliothek zum Extrahieren von Tabellen aus PDFs. Sie versteht Tabellen mit und ohne Rahmen, gibt Ihnen die Koordinaten für jedes Zeichen und lässt Sie die Extraktionsparameter feinabstimmen.
pdfplumber installieren
pip install pdfplumber
Grundlegende Tabellenextraktion
Dieses Skript extrahiert alle Tabellen von jeder Seite eines PDF und schreibt sie in eine CSV-Datei:
import pdfplumber
import csv
with pdfplumber.open("invoice.pdf") as pdf:
all_rows = []
for page in pdf.pages:
table = page.extract_table()
if table:
all_rows.extend(table)
with open("output.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(all_rows)
print(f"Extracted {len(all_rows)} rows to output.csv")
Umgang mit randlosen Tabellen
Wenn Tabellen keine sichtbaren Grenzen haben, kann pdfplumber Spalten weiterhin anhand von Zeichenpositionen erkennen. Verwenden Sie extract_table() mit benutzerdefinierten Einstellungen:
# Für PDFs ohne sichtbare Tabellengrenzen
table_settings = {
"vertical_strategy": "text",
"horizontal_strategy": "text",
"snap_y_tolerance": 5,
"intersection_x_tolerance": 15,
}
with pdfplumber.open("report.pdf") as pdf:
page = pdf.pages[0]
table = page.extract_table(table_settings)
for row in table:
print(row)
Mehrere PDFs in Batch konvertieren
import pdfplumber
import csv
from pathlib import Path
for pdf_file in Path("./invoices").glob("*.pdf"):
csv_path = pdf_file.with_suffix(".csv")
with pdfplumber.open(pdf_file) as pdf:
rows = []
for page in pdf.pages:
table = page.extract_table()
if table:
rows.extend(table)
with open(csv_path, "w", newline="") as f:
csv.writer(f).writerows(rows)
print(f"{pdf_file.name} -> {csv_path.name} ({len(rows)} rows)")
Methode 3: Microsoft Excel (Daten abrufen)
Microsoft 365 (Excel für 365) kann PDF-Dateien direkt über die Power Query / Daten abrufen-Funktion importieren. Diese Option ist nicht im eigenständigen Excel 2016 oder 2019 verfügbar — es ist ein aktives Microsoft 365-Abonnement erforderlich. Es funktioniert gut für einfache, gut strukturierte Tabellen.
- Öffnen Sie Excel und erstellen Sie eine neue leere Arbeitsmappe.
- Gehen Sie zu Daten → Daten abrufen → Aus Datei → Aus PDF.
- Wählen Sie Ihr PDF aus dem Dateibrowser aus.
- Wählen Sie die Tabelle(n) aus, die Sie aus dem Navigator-Bereich importieren möchten. Excel zeigt eine Vorschau jeder erkannten Tabelle.
- Klicken Sie auf „Laden", um die Daten in Ihr Arbeitsblatt zu importieren.
- Als CSV speichern: Datei → Speichern unter → Wählen Sie „CSV (Komma getrennt) (*.csv)" als Format.
Einschränkung: Der PDF-Import in Excel funktioniert am besten mit einfachen, gerahmten Tabellen. Es hat Schwierigkeiten mit mehrspaltigem Layout, zusammengeführten Zellen und randlosen Tabellen. Verwenden Sie für komplexe PDFs stattdessen CleverUtils oder Python.
Methode 4: Google Sheets
Google Sheets importiert PDFs nicht direkt, aber Sie können die integrierte OCR von Google Drive verwenden, um zunächst den Text zu extrahieren und ihn dann in Sheets zu kopieren.
- Laden Sie das PDF zu Google Drive hoch.
- Klicken Sie mit der rechten Maustaste auf das PDF → Öffnen mit → Google Docs. Google wird die Datei mit OCR verarbeiten und in ein bearbeitbares Dokument konvertieren.
- Wählen Sie die Tabellendaten im Google Doc aus und kopieren Sie sie (Strg+C / Cmd+C).
- Öffnen Sie ein neues Google Sheet und fügen Sie ein (Strg+V / Cmd+V). Die Daten füllen die Zellen aus.
- Bereinigen Sie die Daten — passen Sie die Spaltenbreiten an, entfernen Sie zusätzliche Zeilen, beheben Sie OCR-Fehler.
- Als CSV herunterladen: Datei → Herunterladen → Kommagetrennte Werte (.csv).
Tipp: Die OCR von Google funktioniert überraschend gut bei gescannten PDFs. Die Tabellenstruktur überlebt jedoch möglicherweise den Kopier-Einfügen-Schritt nicht intakt. Für bessere Ergebnisse mit tabellarischen Daten verwenden Sie den direkten PDF-zu-CSV-Konverter von CleverUtils.
Vergleich der Methoden
| Funktion | CleverUtils | Python | Excel | Google Sheets |
|---|---|---|---|---|
| Schwierigkeitsgrad | Einfach | Fortgeschritten | Mittel | Einfach |
| Installation | Keine (Browser) | Python + pip | Microsoft 365 | Keine (Browser) |
| Gerahmte Tabellen | Ausgezeichnet | Ausgezeichnet | Gut | Ordnungsgemäß |
| Randlose Tabellen | Gut | Ausgezeichnet | Schlecht | Schlecht |
| Gescannte PDFs (OCR) | Integriert | Mit pytesseract | Nicht unterstützt | Über Google Drive |
| Batch-Verarbeitung | Eine Datei auf einmal | Unbegrenzt | Eine Datei auf einmal | Eine Datei auf einmal |
| Am besten geeignet für | Schnelle einmalige Konvertierungen | Automatisierung & komplexe PDFs | Excel-Benutzer mit einfachen Tabellen | Schnelle Extraktion mit OCR |
Tipps für saubere CSV-Ausgabe
- Überprüfen Sie die Kopfzeile. Einige PDFs haben mehrzeilige Überschriften, die sich in separate CSV-Zeilen aufteilen. Überprüfen Sie nach der Konvertierung, dass Ihre Spaltenüberschriften auf einer einzelnen Zeile vorhanden sind.
- Achten Sie auf zusammengeführte Zellen. PDF-Tabellen führen oft Zellen für Gruppentitel zusammen. Diese werden in CSV normalerweise zu leeren Zellen. Füllen Sie sie manuell oder mit einem Skript nach der Extraktion aus.
- Behandeln Sie Sonderzeichen. Kommas, Anführungszeichen und Zeilenumbrüche in Zellwerten können das CSV-Parsing unterbrechen. Gute Konverter (CleverUtils, pdfplumber) handhaben das Escaping automatisch. Wenn Ihrer nicht, wickeln Sie Werte in doppelte Anführungszeichen ein.
- Codierung ist wichtig. Verwenden Sie beim Speichern von CSV die UTF-8-Codierung, um akzentuierte Zeichen, Währungssymbole und nicht-lateinischen Text zu erhalten. In Python:
open("out.csv", "w", encoding="utf-8-sig")(das-sigfügt eine BOM hinzu, die Excel hilft, UTF-8 zu erkennen). - Mehrseitige Tabellen. Wenn sich eine Tabelle über mehrere PDF-Seiten erstreckt, extrahieren einige Tools jede Seite als separate Tabelle. Überspringen Sie in Python die Kopfzeile auf nachfolgenden Seiten, um Duplikate zu vermeiden.
Häufige Probleme und Lösungen
| Problem | Ursache | Lösung |
|---|---|---|
| Leere CSV-Ausgabe | Gescanntes PDF (bildbasiert) | Aktivieren Sie OCR in CleverUtils oder verwenden Sie pytesseract |
| Alle Daten in einer Spalte | Excel hat CSV mit falschen Trennzeichen geöffnet | Verwenden Sie Daten → Text in Spalten → Begrenzt → Komma |
| Falsch ausgerichtete Spalten | Randlose Tabelle mit ungleichmäßiger Abstände | Verwenden Sie pdfplumber mit vertical_strategy: "text" |
| Verstümmelte Zeichen | Falsche Codierung (normalerweise Latin-1 vs UTF-8) | Öffnen Sie in Texteditor, speichern Sie als UTF-8 |
| Doppelte Überschriften | Mehrseitige Tabelle mit wiederholten Kopfzeilen | Überspringen Sie in Python Zeile 0 auf Seiten nach der ersten |