tooloora

CSV in Excel und Excel in CSV – im Browser

CSV in eine echte .xlsx-Mappe mit fetter Kopfzeile und passenden Spaltenbreiten verwandeln – oder ein Arbeitsblatt zurück als CSV holen. Formel-Zellen werden dabei entschärft.

Läuft lokal — nichts wird hochgeladen

Zellen, die mit = + - oder @ beginnen, bekommen ein Apostroph davor. Das Apostroph ist in der Zelle sichtbar, verhindert aber, dass die Tabelle beim Weiterverarbeiten als Formel ausgeführt wird.

Alles läuft in deinem Browser – kein Upload, keine Speicherung.

CSV in Excel umwandeln – und Excel zurück in CSV

Aus einer CSV-Datei wird hier eine echte .xlsx-Arbeitsmappe: fette Kopfzeile, fixierte erste Zeile, Spaltenbreiten passend zum Inhalt, Zahlen als Zahlen. Umgekehrt liest das Werkzeug eine Excel-Datei ein, lässt dich bei mehreren Arbeitsblättern eines auswählen und gibt es als CSV mit frei wählbarem Trennzeichen aus. Beides passiert komplett in deinem Browser – kein Upload, keine Anmeldung, keine Warteschlange.

Warum entschärft das Werkzeug Zellen mit =, +, - und @?

Weil Tabellenprogramme den Inhalt einer Zelle ausführen, wenn er wie eine Formel aussieht. Das betrifft Excel, LibreOffice Calc und Google Sheets gleichermaßen, und die OWASP führt den Angriff unter dem Namen CSV-Injection (auch Formula Injection). Der Klassiker sieht so aus:

=cmd|' /C calc'!A0

Landet diese Zeichenfolge über ein Web-Formular in einem Export und öffnet jemand die Datei, versucht das Tabellenprogramm eine externe Anwendung zu starten. Andere Varianten laden per WEBSERVICE() oder HYPERLINK() Inhalte nach und schicken dabei Zellinhalte an eine fremde Adresse – Datenabfluss ohne einen einzigen Klick des Opfers.

Der übliche Gegenmittel-Vorschlag ist ein vorangestelltes Apostroph, und genau das macht dieses Werkzeug beim Schreiben der .xlsx. Zwei Dinge dazu ehrlich gesagt:

  • Das Apostroph ist in der Zelle sichtbar. Ein unsichtbarer Schutz wäre schöner, ist im XLSX-Format aber nicht verlässlich abbildbar.
  • Echte negative Zahlen wie -5 oder -1.5e3 werden nie angefasst, sonst zerstörte der Schutz jede Buchhaltung.

Wer die Daten aus einer vertrauenswürdigen Quelle hat, kann die Entschärfung mit einem Häkchen abschalten.

Was schreibt das Werkzeug, und was nicht?

Geschrieben wird .xlsxOffice Open XML, seit Excel 2007 das Standardformat und im Kern eine ZIP-Datei mit XML darin. Es wird von Excel, LibreOffice, Numbers und Google Sheets gelesen.

Nicht geschrieben wird das alte .xls. Das ist ein proprietäres Binärformat, dessen korrekte Erzeugung im Browser unverhältnismäßig aufwendig wäre. Wer zwingend .xls braucht, öffnet die erzeugte .xlsx einmal in Excel und speichert sie dort um.

Die Grenzen einer Excel-Tabelle liegen ohnehin woanders: Eine .xlsx-Datei fasst 1.048.576 Zeilen und 16.384 Spalten je Blatt. Dieses Werkzeug übernimmt bis zu 100.000 Zeilen, damit der Browser-Tab bedienbar bleibt, und sagt es, wenn abgeschnitten wurde.

Was geht beim Weg von Excel nach CSV verloren?

Eine CSV-Datei enthält genau eine Tabelle aus Text. Alles andere fällt weg:

  • Formeln werden mit ihrem zuletzt berechneten Ergebnis übernommen – CSV kennt keine Formeln.
  • Formatierungen, Farben, Rahmen, verbundene Zellen, Bilder, Diagramme und Kommentare verschwinden.
  • Weitere Arbeitsblätter bleiben außen vor; du wählst aus, welches exportiert wird.
  • Datumswerte werden als JJJJ-MM-TT geschrieben, damit sie sortierbar und eindeutig bleiben.

Warum die UTF-8-Kennung am Dateianfang?

Excel rät beim Doppelklick auf eine CSV-Datei die Kodierung aus den Systemeinstellungen, statt UTF-8 anzunehmen. Ohne Kennung werden aus Umlauten die bekannten Buchstabenpaare. Die drei Bytes am Dateianfang lösen das Problem für den Doppelklick-Weg; sie stecken nur in der heruntergeladenen Datei, nicht im angezeigten Text. Manche Import-Skripte stolpern über die Kennung – dafür lässt sie sich abschalten.

Ehrliche Grenzen

Kein .xls, keine Makros, keine Pivot-Tabellen, keine Diagramme. Passwortgeschützte Arbeitsmappen lassen sich nicht öffnen. Sehr große Dateien kosten Arbeitsspeicher, weil die ganze Mappe im Browser aufgebaut wird – bei mehreren hunderttausend Zeilen ist ein Skript mit pandas oder openpyxl das passendere Werkzeug.

Häufige Fragen

Verlässt meine Tabelle mein Gerät?

Nein. Die Arbeitsmappe wird in deinem Browser-Tab gebaut und gelesen, es gibt keinen Upload und keine Zwischenkopie auf einem Server. Tabellen gehören zu den heikelsten Dateien, die online umgewandelt werden – Gehälter, Kundenlisten, Rechnungen. Genau deshalb hat dieses Werkzeug kein Backend, an das sie gehen könnten.

Was ist CSV-Injection und wie schützt mich das Tool?

Eine Zelle, die mit =, +, - oder @ beginnt, wird von Excel, LibreOffice und Google Sheets als Formel gelesen. Ein präparierter Export kann deshalb etwas wie =cmd|' /C calc'!A0 enthalten und beim Öffnen Befehle ausführen oder Daten abfließen lassen. Die OWASP führt das als CSV-Injection. Dieses Werkzeug setzt vor solche Zellen ein Apostroph, damit sie Text bleiben. Abschalten kannst du es, echte negative Zahlen wie -5 werden nie angefasst.

Kann das Tool das alte .xls-Format schreiben?

Nein, und das sagen wir lieber, als es vorzutäuschen. .xls ist das proprietäre Binärformat aus der Zeit vor Excel 2007; es im Browser korrekt zu schreiben ist nicht realistisch. Geschrieben wird .xlsx, das ZIP-basierte Office-Open-XML-Format, das Excel, LibreOffice, Numbers und Google Sheets lesen.

Was geht beim Weg von Excel nach CSV verloren?

Alles, was nicht reiner Text ist. Formeln landen mit ihrem zuletzt berechneten Ergebnis in der Datei, denn CSV kennt keine Formeln. Formatierungen, Farben, verbundene Zellen, Bilder, Diagramme, Kommentare und alle weiteren Blätter fallen weg – eine CSV-Datei enthält genau eine Tabelle aus Text. Das Werkzeug benennt das Blatt, das es exportiert, damit nichts unbemerkt verschwindet.

Warum zeigt Excel kaputte Umlaute, wenn ich die CSV öffne?

Weil Excel die Kodierung aus den Systemeinstellungen rät, statt UTF-8 anzunehmen. Eine Byte-Order-Mark am Dateianfang sorgt dafür, dass UTF-8 zuverlässig erkannt wird – deshalb bietet der Download diese Möglichkeit an. Ist die Datei schon ohne gespeichert, hilft der Weg über Daten, Aus Text/CSV mit der Auswahl UTF-8.