XLSX nach CSV in C# konvertieren
XlsxToCsvConverter exportiert ein Tabellenblatt einer Arbeitsmappe als CSV nach RFC 4180. Die Ausgabe hängt nicht von den Regionaleinstellungen des Rechners ab, daher wird 1234.5 nie zu 1234,5.
using DocToolkit;
byte[] xlsx = File.ReadAllBytes("input.xlsx");
string csv = XlsxToCsvConverter.Convert(xlsx, "Sheet1");
File.WriteAllText("output.csv", csv);Was es braucht
- Keinen Browser, weder headless noch sonst.
- Keine Office-Installation und kein LibreOffice.
- Keine nativen Dateien: nur verwalteten Code.
- Kein Netzwerk zur Laufzeit, außer Sie verlangen es.
Gut zu wissen
- Synchron:
Convertnimmt die Arbeitsmappe alsbyte[]und einen Blattnamen entgegen und gibt einenstringzurück. Ein Blatt nach dem anderen, von Ihnen benannt;WorkbookEditor.SheetNameslistet sie auf. - Zahlen sind kulturunabhängig, Datumsangaben folgen ISO 8601, und eine Formelzelle exportiert ihren berechneten Wert.
- Datensätze enden mit CRLF, und ein Feld wird nur dann in Anführungszeichen gesetzt, wenn es nötig ist.
- Gegen Formel-Injection gibt es keinen Schutz: Ein Feld, das mit
=,+,-oder@beginnt, wird unverändert geschrieben. Bereinigen Sie die CSV-Datei einer nicht vertrauenswürdigen Arbeitsmappe, bevor Excel sie öffnet.