Convertir XLSX en CSV en C#
XlsxToCsvConverter exporte une feuille d'un classeur en CSV RFC 4180. La sortie ne dépend pas des paramètres régionaux de la machine, donc 1234.5 ne devient jamais 1234,5.
using DocToolkit;
byte[] xlsx = File.ReadAllBytes("input.xlsx");
string csv = XlsxToCsvConverter.Convert(xlsx, "Sheet1");
File.WriteAllText("output.csv", csv);Ce qu'il faut
- Aucun navigateur, headless ou non.
- Aucune installation d'Office, et pas de LibreOffice.
- Aucun fichier natif : uniquement du code managé.
- Aucun réseau à l'exécution, sauf si vous le demandez.
Bon à savoir
- Synchrone :
Convertprend le classeur sous forme debyte[]et un nom de feuille, et renvoie unestring. Une feuille à la fois, que vous nommez ;WorkbookEditor.SheetNamesles liste. - Les nombres sont indépendants de la culture, les dates sont en ISO 8601, et une cellule de formule exporte sa valeur calculée.
- Les enregistrements se terminent par CRLF, et un champ n'est mis entre guillemets que si c'est nécessaire.
- Aucune protection contre l'injection de formules : un champ commençant par
=,+,-ou@est écrit tel quel. Assainissez le CSV d'un classeur non fiable avant qu'Excel ne l'ouvre.