Eine CSV-Datei kann 00123 korrekt enthalten, während eine Tabellenkalkulation nach dem Öffnen 123 anzeigt. Die Datei speichert Textfelder; die importierende Anwendung entscheidet, wie sie sie interpretiert. Behalten Sie Kennungen beim Import als Text bei und prüfen Sie die gespeicherte Ausgabe, bevor Sie das Original ersetzen.
Eine Kennung ist nicht unbedingt eine Zahl
Rechnen Sie mit Mengen wie einer Anzahl oder einem Preis. Behandeln Sie eine Postleitzahl, einen Katalogschlüssel oder eine Kontokennung entsprechend ihrer Bedeutung: Ihre Ziffern sind möglicherweise Bezeichner und keine Größe, die man addiert. Führende Nullen, lange Ziffernfolgen und datumsähnliche Codes können durch eine ungewollte Umwandlung beschädigt werden.
Die Microsoft-Anleitung zu führenden Nullen und großen Zahlen erklärt, wie man passende Spalten als Text importiert. Sie dokumentiert außerdem Einstellungen gegen die automatische Umwandlung in unterstützten Excel-Versionen. Prüfen Sie Ihre tatsächliche Version; nicht jede Ausgabe bietet dieselben Einstellungen.
Ein eigenes, fiktives CSV-Beispiel
Dies sind erfundene Datensätze zum Lernen, keine echten Konto- oder Kundendaten. Laden Sie die Beispiel-CSV herunter.
item_id,reference,label,quantity
00123,12345678901234567890,JAN1,7
00007,98765432109876543210,1E10,12
| Spalte | Gemeinte Bedeutung | Importtyp |
|---|---|---|
| item_id | Eine Kennung aus fünf Zeichen | Text; 00123 und 00007 erhalten |
| reference | Eine lange Referenzzeichenfolge | Text; jede Ziffer erhalten |
| label | Ein Code, kein Datum und kein Exponent | Text; JAN1 und 1E10 wörtlich beibehalten |
| quantity | Eine Anzahl | Ganze Zahl, nach der Validierung |
CSV enthält diese Tabelle der Spaltentypen nicht als allgemein verbindliches Schema. Wenn Sie sie in Ihre Übergabehinweise aufnehmen, kann das verhindern, dass eine andere Anwendung anders rät.
Gezielt in Excel importieren
- Bewahren Sie eine unveränderte Kopie der Quell-CSV auf.
- Verwenden Sie den Text-/CSV-Importablauf der Anwendung, statt sich auf die automatischen Annahmen eines Doppelklicks zu verlassen.
- Prüfen Sie die Vorschau und stellen Sie kennungsähnliche Spalten auf Text, bevor die Umwandlung angewendet wird. Prüfen oder ersetzen Sie in einem Abfrageablauf bei Bedarf jeden automatischen Schritt zur Typänderung.
- Prüfen Sie Trennzeichen, Zeichenkodierung und den Umgang mit datumsähnlichen Werten.
- Laden Sie die Daten und vergleichen Sie die exakten Kennungen mit der Quelle.
- Prüfen Sie die exportierte CSV nach dem Export in einem Texteditor und importieren Sie sie erneut mit den vorgesehenen Spaltentypen.
Die Microsoft-Anleitung zum Import und Export von Textdateien beschreibt den Unterschied zwischen Öffnen und Importieren. Die Menübezeichnungen unterscheiden sich je nach Plattform und Version. Ein benutzerdefiniertes Anzeigeformat mit fünf Nullen kann 123 als 00123 darstellen, aber das ist nicht dasselbe, wie die ursprüngliche Textkennung zu erhalten oder bereits verlorene Ziffern wiederherzustellen.
Die Zeichenfolgen mit Python prüfen
Die Python-Dokumentation zum Modul csv beschreibt, dass Felder standardmäßig als Zeichenfolgen gelesen werden, mit bestimmten Ausnahmen bei Umwandlungsoptionen. Diese kleine Prüfung verwendet nur die Standardbibliothek:
import csv
with open("identifier-example.csv", newline="", encoding="utf-8") as f:
rows = list(csv.DictReader(f))
assert rows[0]["item_id"] == "00123"
assert rows[0]["reference"] == "12345678901234567890"
assert rows[1]["label"] == "1E10"
quantities = [int(row["quantity"]) for row in rows]
assert sum(quantities) == 19
Die Prüfungen wandeln bewusst nur die Spalte quantity um. Sie zeigen den Inhalt der Beispieldatei, aber keine Garantie für einen beliebigen Export oder eine beliebige Tabellenkalkulation.
Was sich nicht automatisch wiederherstellen lässt
Wenn eine lange Kennung bereits gerundet und über das Original gespeichert wurde, kann die Umstellung des Zellformats auf Text die fehlenden Ziffern nicht rekonstruieren. Stellen Sie sie aus einer unveränderten Quelle wieder her. Wenn 123 entweder 00123 oder 123 bedeuten könnte, ist das Auffüllen eine fachliche Regelentscheidung und kein Beweis für den ursprünglichen Wert.
Das Anführungszeichen-Setzen eines CSV-Felds ist Syntax, um Trennzeichen und andere Zeichen zu erhalten; es zwingt eine Tabellenkalkulation nicht allgemein dazu, das Feld als Text zu behandeln. Eine brauchbare Übergabe nennt Zeichenkodierung, Trennzeichen, vorgesehene Spaltentypen und Validierungsregeln. Zu einem verwandten Problem beim Teilen von Dokumenten siehe Verfügbarkeit und Portabilität von Word-Schriftarten.
