Eine CSV ist selten der Endpunkt. Meistens ist sie das Transportformat, mit dem Daten von einem System ins nächste wandern: aus Excel in eine Datenbank, in den Produktkatalog eines Onlineshops, in die Kontaktliste eines Newsletter-Tools oder in ein Analyse-Skript. Jedes dieser Zielsysteme stellt eigene Erwartungen an die Datei. Das eine besteht auf dem Komma als Trennzeichen, das andere kommt mit dem BOM nicht klar, ein drittes verschluckt führende Nullen. Wer diese Erwartungen vorab kennt und die CSV entsprechend vorbereitet, spart sich abgebrochene Importe und stundenlange Fehlersuche. Dieser Ratgeber führt Sie durch die wichtigsten Zielsysteme und zeigt, worauf es bei jedem ankommt.
Die fünf Stellschrauben jeder Import-CSV
Bevor wir zu den einzelnen Zielsystemen kommen, lohnt der Blick auf die fünf Eigenschaften, die über Erfolg oder Scheitern eines Imports entscheiden. Fast jeder fehlgeschlagene Import lässt sich auf eine davon zurückführen.
Das Trennzeichen bestimmt, wie der Importer die Spalten erkennt. Wählen Sie das falsche, landet die ganze Zeile in einer einzigen Spalte oder die Felder verrutschen. Die Zeichenkodierung entscheidet, ob Umlaute und Sonderzeichen ankommen oder zu Mojibake werden. Das BOM ist eine unsichtbare Markierung am Dateianfang, die manche Importer als Teil des ersten Spaltennamens lesen und dann an der Kopfzeile scheitern. Der Datentyp entscheidet, ob führende Nullen, lange Artikelnummern und Telefonnummern erhalten bleiben oder als Zahl verstümmelt werden. Und das Dezimal- und Datumsformat bestimmt, ob Preise und Termine korrekt interpretiert werden.
Diese fünf Punkte ziehen sich durch alle folgenden Abschnitte. Je nach Zielsystem verschieben sich nur die konkreten Vorgaben.
CSV in relationale Datenbanken importieren
Relationale Datenbanken sind die anspruchsvollsten Importziele, weil sie ein festes Schema erwarten. Jede Spalte hat einen definierten Datentyp, und ein Wert, der nicht dazu passt, lässt den Import abbrechen. Drei Systeme dominieren in der Praxis, jedes mit einem eigenen Importbefehl.
MySQL und MariaDB: LOAD DATA INFILE
MySQL liest CSV-Dateien mit dem Befehl LOAD DATA INFILE ein. Er ist deutlich schneller als ein zeilenweises INSERT und erwartet standardmäßig das Komma als Feldtrenner, doppelte Anführungszeichen als Quoting-Zeichen und einen Zeilenumbruch als Datensatztrenner. Eine vorhandene Kopfzeile überspringen Sie mit IGNORE 1 ROWS. Die Datei sollte UTF-8-kodiert und ohne BOM vorliegen, weil das BOM sonst am ersten Spaltennamen klebt.
LOAD DATA INFILE '/pfad/kunden.csv'
INTO TABLE kunden
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS; Mit CHARACTER SET utf8mb4 stellen Sie sicher, dass Umlaute und auch Emojis korrekt übernommen werden. Exportiert Ihre Quelle mit Semikolon, ersetzen Sie das Komma in FIELDS TERMINATED BY entsprechend, oder Sie wandeln die Datei vorher auf Komma um.
PostgreSQL: COPY und \copy
PostgreSQL nutzt den Befehl COPY, der die CSV auf dem Datenbankserver liest, sowie die Variante \copy im Client psql, die lokal vom eigenen Rechner liest. Der CSV-Modus von COPY hält sich eng an RFC 4180 und erwartet ebenfalls das Komma als Trennzeichen. Mit HEADER true teilen Sie mit, dass die erste Zeile die Spaltennamen enthält, und mit ENCODING 'UTF8' legen Sie die Kodierung fest. PostgreSQL reagiert empfindlich auf ein BOM und wirft dann eine Fehlermeldung über eine unbekannte Spalte.
COPY kunden (id, name, email, plz)
FROM '/pfad/kunden.csv'
WITH (FORMAT csv, HEADER true, DELIMITER ',', ENCODING 'UTF8'); SQLite: der Befehl .import
SQLite bringt mit der Kommandozeile sqlite3 einen einfachen Import mit. Sie setzen den CSV-Modus mit .mode csv und laden die Datei dann mit .import in eine Tabelle. SQLite hat keine strenge Typprüfung, übernimmt führende Nullen also eher, behandelt aber alles als Text, wenn die Zielspalte das vorgibt. Auch hier gilt: UTF-8 ohne BOM, sonst landet die Markierung in der ersten Spalte.
.mode csv
.import --skip 1 kunden.csv kunden CSV in Onlineshops importieren
Onlineshops verwenden CSV-Importe vor allem für zwei Aufgaben: das Anlegen oder Aktualisieren von Produkten und das Importieren von Kunden oder Bestellungen. Anders als bei Datenbanken erwartet jeder Shop eine festgelegte Spaltenstruktur mit bestimmten Spaltennamen. Die Kopfzeile ist hier nicht optional, sondern entscheidet, welches Feld wohin gehört.
Shopify stellt für den Produktimport eine Vorlagendatei bereit, deren Spaltennamen wie Handle, Title oder Variant Price exakt eingehalten werden müssen. Shopify erwartet das Komma als Trennzeichen, UTF-8 als Kodierung und den Punkt als Dezimaltrennzeichen in den Preisfeldern. Eine deutsche Excel-CSV mit Semikolon und Komma-Dezimalstellen muss vor dem Import umgestellt werden.
WooCommerce, das WordPress-Shopsystem, bringt einen eigenen Produktimporter mit, der CSV-Dateien mit Komma als Trennzeichen und UTF-8 erwartet. Beim Import ordnen Sie die Spalten Ihrer Datei den WooCommerce-Feldern zu, sodass die Spaltennamen flexibler sind als bei Shopify. Preise gehören auch hier mit Punkt geschrieben.
Shopware erlaubt beim Import die Wahl des Trennzeichens und kann daher mit Semikolon-CSV umgehen, was deutschen Anwendern entgegenkommt. Wichtig bleibt die saubere UTF-8-Kodierung und ein konsistentes Format für Preise und Zahlen. Bei allen drei Systemen gilt: Artikelnummern und EAN-Codes gehören als Text behandelt, damit führende Nullen und lange Ziffernfolgen nicht in wissenschaftliche Notation kippen.
CSV in CRM und Newsletter-Tools importieren
Kontaktlisten sind der klassische Fall für CRM- und Newsletter-Systeme. Mailchimp und HubSpot importieren Kontakte aus einer CSV, bei der die E-Mail-Adresse das zentrale Pflichtfeld ist. Beide erwarten in der Regel das Komma als Trennzeichen und UTF-8, damit Umlaute in Namen wie Müller oder Wößner erhalten bleiben.
Trennen Sie Vorname und Nachname in eigene Spalten, statt sie in einem Feld zu mischen, denn die Tools nutzen diese Felder für die Personalisierung von E-Mails. Telefonnummern gehören als Text behandelt, damit die führende Null oder das Pluszeichen der Ländervorwahl nicht verloren geht. Beim Import mappen Sie die Spalten Ihrer Datei auf die Zielfelder des Systems, etwa Ihre Spalte mail auf das Feld Email Address. Eine saubere, eindeutige Kopfzeile macht dieses Mapping deutlich einfacher.
CSV für Statistik und Data Science laden
In der Datenanalyse ist CSV das meistgenutzte Austauschformat. Python mit der Bibliothek pandas liest CSV über die Funktion read_csv, die zahlreiche Parameter für Trennzeichen, Kodierung und Datentypen bietet. Standardmäßig erwartet pandas das Komma, doch mit dem Parameter sep stellen Sie auf Semikolon um, was bei deutschen Exporten häufig nötig ist.
import pandas as pd
df = pd.read_csv(
"kunden.csv",
sep=";",
encoding="utf-8",
dtype={"plz": str, "artikelnr": str},
parse_dates=["bestelldatum"],
) Über dtype erzwingen Sie, dass PLZ und Artikelnummer als Text gelesen werden und ihre führenden Nullen behalten. Mit parse_dates wandelt pandas die genannten Spalten direkt in echte Datumswerte um, was am verlässlichsten funktioniert, wenn die Daten im ISO-Format JJJJ-MM-TT vorliegen. Hat Ihre Datei ein BOM, hilft encoding="utf-8-sig", das die Markierung beim Lesen automatisch entfernt. In R übernimmt die Funktion read.csv beziehungsweise readr::read_delim dieselbe Aufgabe, mit eigenen Parametern für Trennzeichen und Kodierung.
Zielsysteme und ihre CSV-Erwartungen im Überblick
Die folgende Tabelle fasst zusammen, welches Trennzeichen, welche BOM-Behandlung und welche Besonderheit die wichtigsten Zielsysteme erwarten. Sie dient als Schnellreferenz, bevor Sie eine CSV für den Import vorbereiten.
| Zielsystem | Trennzeichen | BOM | Besonderheit |
|---|---|---|---|
| MySQL / MariaDB | Komma | Nein | LOAD DATA INFILE, utf8mb4, Kopfzeile mit IGNORE 1 ROWS |
| PostgreSQL | Komma | Nein | COPY mit HEADER true, RFC-4180-nah, BOM-empfindlich |
| SQLite | Komma | Nein | .mode csv, dann .import, keine strenge Typprüfung |
| Shopify | Komma | Nein | Feste Spaltennamen, Preise mit Punkt, UTF-8 |
| WooCommerce | Komma | Nein | Spalten-Mapping im Importer, UTF-8 |
| Shopware | Komma oder Semikolon | Nein | Trennzeichen wählbar, UTF-8 wichtig |
| Mailchimp / HubSpot | Komma | Nein | E-Mail als Pflichtspalte, Name getrennt, UTF-8 |
| pandas / R | Komma oder Semikolon | via utf-8-sig | sep und dtype frei wählbar, ISO-Datum empfohlen |
Checkliste: CSV sauber für den Import vorbereiten
Wer die folgenden Punkte vor jedem Import abhakt, vermeidet die häufigsten Fehlerquellen, vom verrutschten Spaltenraster bis zur verschluckten führenden Null:
- Trennzeichen passend wählen: Für Datenbanken und die meisten Shops das Komma, bei Shopware oder pandas auch das Semikolon, aber bewusst und einheitlich.
- UTF-8 verwenden: Die Datei als UTF-8 speichern, damit Umlaute und Sonderzeichen im Zielsystem ankommen.
- BOM entfernen: Für Datenbank-Importer das UTF-8-BOM am Dateianfang weglassen, sonst scheitert die Kopfzeile.
- Führende Nullen schützen: PLZ, Artikelnummern und Telefonnummern als Text behandeln, in der Datenbank als VARCHAR, in pandas über dtype als String.
- Dezimaltrennzeichen auf Punkt: Preise und Messwerte mit Punkt schreiben, nicht mit deutschem Komma.
- Datum nach ISO 8601: Termine als JJJJ-MM-TT schreiben, damit sie eindeutig und sortierbar sind.
- Kopfzeile prüfen: Eine eindeutige Kopfzeile mit den vom Zielsystem erwarteten Spaltennamen voranstellen.
Häufige Fragen
Welches Trennzeichen brauche ich für den Datenbank-Import?
Für Datenbanken wie MySQL, PostgreSQL und SQLite ist das Komma das übliche und empfohlene Trennzeichen, weil es dem CSV-Standard RFC 4180 entspricht und die Importbefehle es als Voreinstellung erwarten. Deutsches Excel exportiert dagegen oft mit Semikolon. Wandeln Sie eine Excel-Datei für den Datenbank-Import um, sollten Sie das Trennzeichen daher bewusst auf Komma setzen und das Dezimaltrennzeichen auf Punkt. So vermeiden Sie, dass der Importer Spalten falsch trennt oder Zahlen als Text einliest.
Warum scheitert mein CSV-Import an einem unsichtbaren Zeichen am Dateianfang?
Das ist fast immer das UTF-8-BOM (Byte Order Mark), eine unsichtbare Bytefolge EF BB BF, die deutsches Excel beim Speichern als CSV UTF-8 voranstellt. Datenbank-Importer wie MySQL LOAD DATA INFILE oder PostgreSQL COPY lesen dieses BOM als Teil des ersten Spaltennamens. Aus der Spalte id wird dann eine unbekannte Spalte, und der Import bricht mit einem Fehler ab oder die erste Spalte bleibt leer. Speichern Sie die Datei ohne BOM, oder nutzen Sie ein Werkzeug, das das BOM automatisch entfernt.
Wie behalte ich führende Nullen bei Postleitzahlen und Artikelnummern?
Werte wie die PLZ 04109 oder die Artikelnummer 0078 verlieren ihre führende Null, sobald ein Programm sie als Zahl interpretiert. In der CSV selbst stehen sie korrekt als Text, das Problem entsteht erst beim Einlesen. Beim Datenbank-Import definieren Sie die Zielspalte als Textfeld (VARCHAR statt INT), dann bleibt die Null erhalten. Bei pandas geben Sie die Spalte über dtype als String an, etwa dtype={"plz": str}. So wird der Wert nie in eine Zahl umgewandelt.
Welches Dezimaltrennzeichen erwarten Datenbanken und Shops?
Datenbanken und die meisten internationalen Systeme erwarten den Punkt als Dezimaltrennzeichen, also 19.99 statt 19,99. Das deutsche Komma als Dezimaltrennzeichen führt zu Importfehlern oder dazu, dass aus einem Preis zwei Spalten werden, wenn zugleich das Komma als Feldtrenner dient. Vor dem Export in eine CSV für den Import sollten Sie das Dezimaltrennzeichen daher auf Punkt umstellen. Onlineshops wie Shopify und WooCommerce erwarten ebenfalls den Punkt in den Preisfeldern.
In welchem Format sollten Datumsangaben in einer Import-CSV stehen?
Das verlässlichste Datumsformat für Importe ist ISO 8601, also JJJJ-MM-TT wie 2026-06-12, optional mit Uhrzeit als 2026-06-12T14:30:00. Dieses Format ist eindeutig, sortierbar und wird von MySQL, PostgreSQL, SQLite, pandas und den meisten Shop-Importern direkt verstanden. Lokale Formate wie 12.06.2026 oder 06/12/2026 sind dagegen mehrdeutig, weil unklar ist, ob Tag oder Monat zuerst steht, und führen häufig zu falschen oder abgelehnten Datumswerten.
Was muss ich beim Kontakt-Import in Mailchimp oder HubSpot beachten?
CRM- und Newsletter-Systeme wie Mailchimp und HubSpot erwarten eine CSV mit einer klaren Kopfzeile, in der mindestens die E-Mail-Adresse als eigene Spalte steht, dazu oft Vorname und Nachname getrennt. Die Datei sollte UTF-8-kodiert sein, damit Umlaute in Namen erhalten bleiben, und das Komma als Trennzeichen verwenden, da diese Tools meist die englische Voreinstellung erwarten. Achten Sie zusätzlich darauf, keine Pflichtspalten leer zu lassen, und mappen Sie die Spalten beim Import auf die passenden Zielfelder.
Quellen
- RFC 4180: Common Format and MIME Type for CSV Files, IETF
- LOAD DATA Statement, MySQL Reference Manual
- COPY: Copy data between a file and a table, PostgreSQL Documentation
- pandas.read_csv, pandas Documentation
- RFC 3629: UTF-8, a transformation format of ISO 10646, IETF
Verwandte Artikel
Jetzt Excel sauber in CSV umwandeln
Trennzeichen frei wählbar, UTF-8 mit oder ohne BOM und korrektes Quoting nach RFC 4180. Komplett lokal im Browser, ohne Upload und ohne Anmeldung.
Zum Konverter