Convertisseur XLSX vers CSV

Déposez un classeur Excel et exportez chaque feuille en CSV — individuellement ou ensemble en .zip. Sans upload.

Déposez un tableur ici ou
  1. Déposez un XLSX (ou XLS / XLSM / ODS) ou cliquez sur « parcourir ».
  2. Choisissez une feuille dans le menu déroulant.
  3. Cliquez sur « Convertir et télécharger » pour une feuille, ou « Toutes en .zip » pour tout le classeur.
  4. Sortie en CSV RFC 4180 — UTF-8, séparé par virgules, échappé avec guillemets doubles si nécessaire.
Que fait-il ?

Lit les feuilles Excel et OpenDocument via SheetJS (fork Apache-2.0) et émet chaque feuille en CSV via sheet_to_csv de SheetJS. Les valeurs de cellule sont converties en texte selon le type natif du classeur — les nombres restent des nombres, les dates rendent dans le format d'affichage du classeur, les formules utilisent leurs valeurs calculées en cache. Graphiques, images et mise en forme conditionnelle sont supprimés — CSV ne peut les représenter.

Pièges courants

XLSX → CSV est essentiellement mécanique, mais quelques motifs produisent des sorties surprenantes.

  • Formatage des dates. Excel stocke les dates comme nombres de série ; le format affiché dépend du format numérique de la cellule. Le CSV utilise ce que rend Excel — `2026-04-26`, `4/26/2026`, ou un nombre de série selon comment la cellule est configurée. Pour forcer ISO 8601, changez le format de cellule dans Excel avant l'export.
  • Résultats de formules vs. formules. CSV ne peut pas représenter les formules. La sortie utilise la valeur calculée en cache de chaque cellule au dernier enregistrement. Si le classeur a été modifié sans être ré-enregistré, les valeurs en cache peuvent être obsolètes.
  • Cellules fusionnées. Les cellules fusionnées émettent la valeur dans le coin supérieur gauche de la fusion ; les autres cellules fusionnées deviennent vides. C'est le comportement par défaut de SheetJS et correspond à ce que la plupart des consommateurs CSV attendent.
  • Nombres vs. texte. Excel stocke `00123` comme le nombre 123 sauf si le type de cellule est explicitement Texte. Le CSV reflète le type sous-jacent. Pour préserver les zéros initiaux, formatez la cellule comme Texte dans Excel avant l'export.
  • XLSX chiffré. SheetJS Community ne déchiffre pas les XLSX protégés par mot de passe. Ouvrez le fichier dans Excel, retirez la protection, sauvegardez, puis re-déposez ici.
  • Très grands classeurs. Les classeurs au-dessus de ~50 Mo peuvent prendre un temps notable à parser et peuvent solliciter la mémoire du navigateur. Considérez de scinder en fichiers plus petits ou utiliser SheetJS en ligne de commande pour les gros travaux.
Questions fréquentes

Pourquoi la première conversion est-elle lente ?

SheetJS fait ~190 Ko gzippé et charge à la première sélection de fichier. Les conversions suivantes dans la même session réutilisent le module en cache — instantanées.

Les fichiers XLS (legacy) sont-ils supportés ?

Oui — SheetJS Community parse .xls (BIFF8), .xlsx, .xlsm et .ods. Les variantes chiffrées de chacun ne sont pas supportées.

Le CSV utilise-t-il le séparateur décimal de ma locale ?

Non — la sortie est toujours RFC 4180 avec `.` comme point décimal et `,` comme séparateur de champ. Pour obtenir un CSV style européen séparé par `;`, post-traitez la sortie.

Mon classeur est-il téléchargé ?

Non. Tout s'exécute dans votre navigateur — votre tableur est parsé par SheetJS sur cette page et n'est jamais envoyé à un serveur.

Comment les formules sont-elles exportées ?

CSV ne peut représenter les formules. La sortie utilise la valeur calculée en cache de chaque cellule. Si vous avez besoin du texte de la formule, c'est un export différent — ouvrez le fichier dans Excel et copiez les colonnes de formules séparément.

Pourquoi le CSV ne correspond-il pas exactement à ce que je vois dans Excel ?

La couche d'affichage d'Excel applique du formatage numérique, des règles conditionnelles et des paramètres de locale par-dessus la valeur brute. CSV est du texte simple, donc une partie de ce style visuel est intentionnellement perdue. Le contenu de cellule est préservé ; l'apparence ne l'est pas.