Was eine Zelle tatsächlich speichert
Eine Tabellenzelle enthält zwei getrennte Dinge: einen Wert und ein Zahlenformat. Der Wert 0,15 kann als 15 %, als 0,15, als 0,15 € oder als 15,00 % erscheinen, und keine dieser Darstellungen ändert den Wert auch nur um ein Haar. Das ist die nützlichste Tatsache über Tabellen überhaupt – und der Grund, warum Excel in CSV Sie zwischen „Wie in Excel angezeigt“ und „Rohe Zahlen, ISO-Datumswerte“ wählen lässt, statt zu raten. „Wie in Excel angezeigt“ schreibt genau den Text, der auf dem Bildschirm steht – 15/03/2024, 1,234.50, 12% –, also das, was auch „Speichern unter“ in Excel tut und was ein Mensch beim Lesen der CSV erwartet. „Rohe Zahlen, ISO-Datumswerte“ schreibt reine Zahlen und ISO-Datumsangaben, also das, was eine Datenbank oder ein Skript erwartet. Wählen Sie das Falsche, scheitert der Import so, als wären die Daten beschädigt.
Datumswerte sind Zahlen, die sich als Datum ausgeben. Eine Datumszelle enthält eine fortlaufende Tageszahl, und von welchem Nullpunkt aus gezählt wird, hängt von der Datei ab: Arbeitsmappen aus Excel für Windows zählen ab 1900, Arbeitsmappen aus dem alten Excel für Mac ab 1904 – und die beiden liegen 1.462 Tage auseinander. Das 1900er-System ist noch seltsamer: Es glaubt, dass es den 29. Februar 1900 gab – ein Fehler, der von Lotus 1-2-3 geerbt und seither aus Kompatibilitätsgründen beibehalten wurde. Die Tools hier lesen das Nullpunkt-Kennzeichen jeder Arbeitsmappe und bilden den falschen Schalttag genau dort nach, wo er hingehört. Deshalb stimmt ein hier umgewandeltes Datum mit dem überein, was Excel anzeigt, statt um vier Jahre und einen Tag zu verrutschen.
Eine Formel und ihr Ergebnis werden nebeneinander gespeichert. Eine Arbeitsmappe bewahrt den Formeltext und den zuletzt berechneten Wert auf. Umwandlungen von Arbeitsmappe zu Arbeitsmappe – ODS in XLSX, XLS in XLSX, XLSX in ODS – übernehmen die Formeln selbst, übersetzt zwischen den beiden Funktionswortschätzen, sodass die Tabelle beim Bearbeiten weiter rechnet; die wenigen Funktionen, die es nur auf einer Seite gibt, erscheinen als #NAME?, bis Sie sie ersetzen. Alles, was die Welt der Tabellenkalkulation verlässt – CSV, JSON, XML –, übernimmt nur das berechnete Ergebnis, weil keines dieser Formate überhaupt eine Vorstellung von einer Formel hat.
CSV kann den größten Teil einer Arbeitsmappe nicht abbilden, und wer so tut, als ginge es doch, verliert Daten. CSV kennt keine Tabellenblätter, also wird jedes Blatt zu einer eigenen Datei (und zu einem ZIP, wenn Sie alle möchten). Es kennt keine Zelltypen, also ist jedes Feld Text, bis irgendetwas rät. Es kennt keine Formate, keine Formeln, keine Diagramme, keine Bilder, keine Farben, keine Spaltenbreiten. Verbundene Zellen müssen so oder so aufgelöst werden – der Wert steht in der ersten Zelle oder wird über den ganzen Verbund wiederholt. Und eine CSV hält weder ihr eigenes Trennzeichen noch ihr Dezimalzeichen noch ihre Kodierung fest. Deshalb landet eine europäische Datei mit Semikolons und Dezimalkommas in einem US-Excel in einer einzigen Spalte, und deshalb werden Umlaute und Akzente zu Zeichensalat, sofern die Datei nicht mit einer Byte-Order-Mark beginnt.
Text, der wie eine Zahl aussieht, richtet den eigentlichen Schaden an. Excel rät beim Öffnen einer CSV Zelle für Zelle: Die Postleitzahl 01234 verliert ihre Null, eine 16-stellige Bestellnummer wird zu 1,23457E+15 und lässt sich nicht mehr wiederherstellen, und der Genname SEPT2 wird zu einem Datum – ein Problem, das so gravierend war, dass die Genetik ihre Gene umbenannt hat. CSV in Excel entscheidet stattdessen einmal pro Spalte, anhand aller Werte darin, und wandelt nur um, wenn die ganze Spalte dazu passt; alles mit führenden Nullen und jede Ganzzahl, die zu lang ist, als dass eine JavaScript-Zahl sie exakt halten könnte, bleibt Text. JSON in CSV wendet dieselbe Sorgfalt in umgekehrter Richtung an und übernimmt 64-Bit-IDs Ziffer für Ziffer, wo die meisten Konverter sie runden.
JSON und XML lassen jeweils etwas Eigenes weg. JSON hat überhaupt keinen Datumstyp, also reisen Datumswerte als Text, und der empfangende Code muss wissen, was er vor sich hat. Daten-XML enthält nur Werte, ohne Formatierung, Diagramme oder Bilder – genau das, was ein Import-Feed will, aber nicht das, was Sie wollen, wenn es darum ging, die Arbeitsmappe unversehrt zu erhalten.
Wo ein Browser wirklich das falsche Werkzeug ist
Sieben dieser Tools senden Ihre Datei nirgendwohin: Excel in CSV, CSV in Excel, CSV in JSON, JSON in CSV, XML in Excel, Excel in XML und PDF in Excel. Es wird nichts gespeichert – wichtig, wenn die Datei eine Gehaltsabrechnung oder eine Kundenliste ist. Vier sind anders: Excel in PDF, ODS in XLSX, XLS in XLSX und XLSX in ODS übergeben die Datei an unseren Server, weil sich das Setzen einer Druckseite – oder das Übertragen von Schriften, Farben, bedingter Formatierung und Diagrammen zwischen Formaten – von einer Webseite nicht vortäuschen lässt. Diese Dateien werden über eine verschlüsselte Verbindung übertragen, umgewandelt und gelöscht, sobald Ihr Download bereitsteht. Ist der Server nicht erreichbar, greift jedes dieser Tools auf seinen eigenen Konverter zurück, der Werte, Formeln, Zahlenformate, verbundene Zellen und Spaltenbreiten erhält, aber keine Schriften, Farben oder Diagramme – und Ihnen sagt, dass er das getan hat.
Größe. Die Tools im Browser halten die ganze Tabelle im Arbeitsspeicher, die Obergrenze ist also das Speicherbudget Ihres Tabs – bequem bis in den zweistelligen Megabyte-Bereich, mühsam jenseits von hundert und aussichtslos bei einem Export von mehreren Gigabyte. Die Arbeitsmappen-Konverter sind auf 50 MB pro Datei begrenzt, Excel in PDF auf 40 MB, und beide sagen das vor dem Umwandeln, nicht danach. Ein Excel-Tabellenblatt endet bei 1.048.576 Zeilen – eine Grenze des Formats, nicht unsere; CSV in Excel setzt auf weiteren Blättern mit wiederholter Kopfzeile fort, statt Ihre Daten stillschweigend abzuschneiden.
Echte Datenarbeit. Ein Konverter ist keine Datenbank. Zwei Tabellen verknüpfen, Duplikate entfernen, aggregieren, zehn Millionen Zeilen filtern oder einen chaotischen Export analysieren – das sind Aufgaben für Tools, die dafür gebaut sind, und die kostenlosen sind sehr gut: csvkit für schnelle CSV-Eingriffe auf der Kommandozeile, Miller für dasselbe mit JSON und CSV zusammen, qsv für Tempo bei riesigen Dateien, DuckDB, um echtes SQL direkt auf eine CSV- oder Parquet-Datei loszulassen, pandas, wenn Sie ohnehin in Python arbeiten.
Makros und alles, was ausgeführt wird. VBA lässt sich nicht in .xlsx übernehmen, das schlicht keinen Platz dafür hat, und auch nicht in .ods, weil LibreOffice nur einen Teil von VBA ausführt und sich die Unterschiede als falsche Zahlen statt als Fehlermeldungen zeigen würden. Hängt eine Arbeitsmappe von ihren Makros ab, bewahren Sie das Original neben der umgewandelten Kopie auf. Bei passwortgeschützten Dateien muss das Passwort zuerst entfernt werden, und zwar in dem Programm, das es gesetzt hat.
Automatisierung. Diese Tools laufen, wenn ein Mensch klickt. Einen nächtlichen Datenfeed umzuwandeln ist eine Aufgabe für die Kommandozeile: LibreOffice im Headless-Modus beherrscht jedes Format auf dieser Seite.
Die Wahl zwischen ähnlich klingenden Tools
Excel in CSV oder Excel in XML? Beide lesen eine Arbeitsmappe und schreiben eine flache Datendatei – das Ziel entscheidet. CSV geht an Tabellenkalkulationen, Datenbanken und alles, was „CSV hochladen“ sagt. XML geht an Importe und Schnittstellen, die Elementnamen vorgeben – Sie legen die Namen für Wurzel und Zeilen fest, Spaltenüberschriften werden zu Elementnamen, und Werte kommen als reine Zahlen und ISO-Datumsangaben heraus. Excel in XML kann außerdem XML Spreadsheet 2003 schreiben, und das ist etwas völlig anderes: ein Format, das Excel wieder als Arbeitsmappe öffnet – für den Fall, dass ein System „Excel-XML“ verlangt und nicht Ihr eigenes Daten-XML.
CSV in Excel oder CSV in JSON? Derselbe Parser, dieselbe Typerkennung pro Spalte, andere Ausgabe. CSV in Excel erzeugt eine .xlsx mit echten Datumswerten und Zahlen, die Sie summieren und sortieren können, und einer fixierten, filterbaren Kopfzeile – für Menschen. CSV in JSON erzeugt ein Array von Objekten, ein Array von Arrays, ein Objekt mit Schlüsseln oder JSON Lines – für Code. Lautet die Antwort „beides“, wandeln Sie für die Menschen in Excel und für die Pipeline in JSON um; die Ergebnisse stimmen überein, weil die Spaltentypen auf dieselbe Weise bestimmt wurden.
XML in Excel oder Excel in XML? Nicht einfach entgegengesetzte Richtungen. XML in Excel muss die Tabelle erst finden: Es sucht nach Elementen, die sich unter demselben Elternelement wiederholen – jedes <book> in einem Katalog, jedes <item> in einem RSS-Feed –, bewertet jede Gruppe und bietet die übrigen einen Klick entfernt an. Dann werden Attribute und verschachtelte Elemente zu Spalten mit Pfadnamen aufgelöst. Excel in XML muss nichts suchen, weil Ihre Zeilen bereits die Datensätze sind.
XLS in XLSX oder CSV in Excel? Beide enden in einer modernen Arbeitsmappe. XLS in XLSX aktualisiert eine echte Binärdatei aus Excel 97–2003 und erhält alles darin – Tabellenblätter, Formeln, Formatierung, Diagramme. CSV in Excel baut eine Arbeitsmappe aus reinem Text, der nichts davon je hatte. Die Überschneidung ist der lästige Grenzfall: Viele Web-Apps exportieren eine HTML-Tabelle oder eine XML-Datei und nennen sie .xls. XLS in XLSX erkennt sie als das, was sie wirklich sind, und speichert eine echte Arbeitsmappe.
PDF in Excel oder Excel in PDF? Entgegengesetzte Richtungen, und nur eine davon ist zuverlässig. Excel in PDF ist eine Layoutaufgabe: Die Arbeitsmappe kennt ihren Druckbereich, ihre Seitenumbrüche und ihre Formatierung bereits, und der Konverter zeichnet sie. PDF in Excel ist die schwierige Richtung, denn ein PDF hält fest, wo jedes Zeichen gemalt wurde, aber nichts darüber, zu welcher Zelle es gehörte – die Spalten werden aus der Position erschlossen. Das funktioniert gut bei sauberen Tabellen mit Linien, braucht Nacharbeit, wo Zellen verbunden sind oder über mehrere Zeilen umbrechen, stellt Werte wieder her, aber keine Formatierung oder Formeln, und legt für jede PDF-Seite ein eigenes Tabellenblatt an. Existiert die ursprüngliche Arbeitsmappe noch, fragen Sie danach.
ODS in XLSX oder Excel in CSV für eine .ods-Datei? Excel in CSV öffnet .ods problemlos und liefert Ihnen die Werte. ODS in XLSX erhält die Arbeitsmappe als Arbeitsmappe, mit ihren Formeln, ihrer Formatierung und ihren Diagrammen. Nehmen Sie den Konverter, wenn jemand in der Datei arbeiten muss, und den Weg über CSV, wenn ein System die Zahlen daraus braucht.