Comment diviser un gros fichier CSV en plusieurs fichiers

Pour diviser un gros fichier CSV, décidez de la taille maximale de chaque partie, découpez-le en morceaux de ce nombre de lignes et répétez la ligne d'en-tête en haut de chaque morceau. L'outil de cette page fait exactement cela dans votre navigateur : choisissez un nombre de lignes par fichier, un nombre de fichiers égaux ou un fichier par valeur de colonne, puis téléchargez toutes les parties en ZIP.

7 min de lecture

La réponse courte

Un fichier CSV est du texte brut avec un enregistrement par ligne : le diviser semble aussi simple que de couper le texte toutes les quelques milliers de lignes. Deux détails rendent cette méthode peu fiable. La ligne d'en-tête n'existe qu'une fois, tout en haut, donc chaque partie après la première n'aurait pas de noms de colonnes. Et une valeur entre guillemets peut contenir des retours à la ligne, si bien qu'une coupe à l'aveugle peut couper un enregistrement en deux. Un vrai outil de division lit le fichier enregistrement par enregistrement, copie l'en-tête dans chaque partie et ne coupe qu'entre des enregistrements complets.

Avec l'outil ci-dessous, déposez le CSV sur la page, laissez Diviser par sur Nombre de lignes, saisissez le nombre de lignes par fichier et patientez un instant. Chaque partie apparaît dans la liste avec son propre bouton de téléchargement, et Tout télécharger en ZIP les enregistre ensemble. Rien n'est envoyé : le fichier est lu dans votre navigateur, ce qui garde aussi les données clients et les commandes privées.

Essayez ici : Diviser un CSV

Ouvrir la page complète de l'outil

Pourquoi diviser un CSV

La plupart du temps, c'est une limite ailleurs qui impose la division. Les écrans d'import des boutiques en ligne, marketplaces, outils d'emailing et CRM n'acceptent souvent qu'un certain nombre de lignes ou de mégaoctets par envoi. Excel affiche au maximum 1 048 576 lignes par feuille et devient lent bien avant, et Google Sheets a une limite de cellules pour l'ensemble du classeur. Les pièces jointes des e-mails sont en général plafonnées entre 20 et 25 Mo.

D'autres divisions concernent les personnes plutôt que les logiciels : un fichier par région pour les responsables régionaux, un par fournisseur avec seulement ses produits, ou des parts égales d'une liste d'appels pour chaque membre d'une équipe. Dans ces cas, on divise selon la valeur d'une colonne ou en un nombre fixe de fichiers plutôt que selon un nombre fixe de lignes.

SituationDiviser parRéglage type
Limite d'import de 10 000 lignes par fichierNombre de lignesLignes par fichier : 10000
Fichier trop gros pour ExcelNombre de lignesLignes par fichier : 1000000
Même part pour quatre collèguesNombre de fichiersNombre de fichiers : 4
Un fichier par agence, ville ou fournisseurValeur de colonneColonne : Agence
Pièce jointe au-delà de la limite de l'e-mailNombre de fichiersAssez de fichiers pour rester sous la limite

Choisir la bonne taille pour chaque partie

Si une plateforme indique une limite de lignes, utilisez-la directement en gardant un peu de marge, car certains imports comptent l'en-tête comme une ligne. Pour une limite exprimée en mégaoctets, divisez la taille du fichier par la limite et arrondissez au supérieur pour obtenir le nombre de fichiers, puis choisissez Nombre de fichiers afin que chaque partie ait à peu près la même taille. Un export de 180 Mo avec une limite de 50 Mo demande quatre fichiers.

Lignes par fichier et Nombre de fichiers ne traitent pas la dernière partie de la même façon. Lignes par fichier remplit chaque partie complètement et laisse le reste dans la dernière : 25 500 lignes à 10 000 par fichier donnent deux fichiers pleins et un de 5 500 lignes. Nombre de fichiers répartit les lignes aussi également que possible : le même tableau en trois fichiers donne 8 500 lignes chacun.

Les parties reprennent le nom du fichier d'origine avec un numéro de même largeur pour toutes, comme commandes_01.csv à commandes_12.csv, pour rester dans le bon ordre quand on les trie par nom.

Diviser selon la valeur d'une colonne

Choisissez Valeur de colonne sous Diviser par et sélectionnez la colonne dans la liste, remplie à partir de l'en-tête de votre fichier. L'outil crée un fichier pour chaque valeur distincte et lui donne le nom de cette valeur, par exemple commandes_Lyon.csv et commandes_Nantes.csv. Les lignes dont la colonne est vide sont regroupées dans un fichier avec vide dans son nom, aucune ligne ne se perd.

Les valeurs sont comparées après suppression des espaces au début et à la fin : Nantes et Nantes suivi d'un espace arrivent donc dans le même fichier. Les majuscules et minuscules restent distinguées, car dans des codes elles peuvent avoir un sens différent. Une colonne de plus de 1 000 valeurs différentes, comme un numéro de commande, créerait beaucoup trop de fichiers : l'outil s'arrête alors et demande une colonne avec moins de valeurs.

Garder les données intactes

Le séparateur est détecté automatiquement, que le fichier utilise des virgules, des points-virgules, des tabulations ou des barres verticales, et les parties gardent le même séparateur, sauf si vous en choisissez un autre sous Séparateur. Les valeurs entre guillemets qui contiennent des virgules, des guillemets ou des retours à la ligne restent dans une seule cellule. Les valeurs sont copiées à l'identique : codes-barres et codes postaux avec zéros initiaux, longs identifiants et dates ne changent pas.

Chaque partie CSV est enregistrée en UTF-8 avec une marque d'ordre des octets (BOM), qui indique à Excel d'afficher correctement les lettres accentuées quand le fichier est ouvert par un double clic. Si l'original a été enregistré par un ancien programme dans un encodage Windows régional, il est reconnu et converti en UTF-8 au passage. Vous pouvez aussi régler Enregistrer en sur Excel pour obtenir des classeurs .xlsx avec une ligne d'en-tête en gras et figée, où les colonnes avec zéros initiaux restent du texte.

Très gros fichiers et autres méthodes

L'outil lit les fichiers CSV par petits morceaux en arrière-plan : un fichier de 100 Mo avec plusieurs centaines de milliers de lignes est divisé en quelques secondes sur un ordinateur portable ordinaire, et la page reste réactive. La limite, c'est la mémoire de votre appareil : les parties restent en mémoire jusqu'à leur téléchargement. Pour des fichiers de plusieurs gigaoctets, un outil en ligne de commande est donc plus adapté.

Sous macOS et Linux, la commande split découpe un fichier par lignes, par exemple split -l 10000 donnees.csv partie_, mais elle ne répète pas l'en-tête et coupe au milieu des valeurs entre guillemets qui s'étendent sur plusieurs lignes. Dans Excel, vous pouvez copier des blocs de lignes à la main dans de nouveaux classeurs : cela fonctionne pour quelques parties, mais c'est lent et source d'erreurs. Power Query ou un court script Python avec le module csv gèrent correctement les retours à la ligne entre guillemets, si vous êtes à l'aise avec ces outils.

Problèmes fréquents et solutions

  • Les parties n'ont qu'une seule colonne : le fichier utilise un séparateur qu'Excel n'attend pas. Importez-le via Données, À partir d'un fichier texte/CSV, ou réglez Enregistrer en sur Excel.
  • Un message indique qu'une valeur entre guillemets n'est pas fermée : il manque un guillemet quelque part dans le fichier, souvent dans une description de produit. Ouvrez le fichier dans un éditeur de texte, trouvez la ligne et corrigez le guillemet.
  • La liste des colonnes est vide : ajoutez d'abord le fichier, la liste est remplie à partir de sa première ligne. Si le fichier n'a pas d'en-tête, désactivez La première ligne est l'en-tête et choisissez la colonne par son numéro.
  • Trop de fichiers : avec une petite valeur de Lignes par fichier, un grand tableau produirait des milliers de fichiers. Choisissez une valeur plus élevée, l'outil accepte jusqu'à 1 000 parties.

Étape par étape

  1. Ajoutez le CSVDéposez le fichier sur l'outil ou cliquez sur Choisir des fichiers. Plusieurs fichiers peuvent être divisés en une fois avec les mêmes réglages.
  2. Choisissez comment diviserSélectionnez Nombre de lignes, Nombre de fichiers ou Valeur de colonne sous Diviser par, puis saisissez le nombre ou choisissez la colonne.
  3. Vérifiez l'option d'en-têteLaissez La première ligne est l'en-tête activé pour que les noms de colonnes soient répétés en haut de chaque partie.
  4. Téléchargez les partiesTéléchargez les parties une par une depuis la liste ou cliquez sur Tout télécharger en ZIP pour toutes les enregistrer d'un coup.

Questions fréquentes

Comment diviser un fichier CSV en plusieurs fichiers avec l'en-tête ?

Utilisez un outil qui copie la ligne d'en-tête dans chaque partie, comme celui de cette page avec La première ligne est l'en-tête activé. Les outils simples qui coupent par lignes ne gardent l'en-tête que dans le premier fichier.

Combien de lignes peut contenir un fichier CSV ?

Le format CSV lui-même n'a pas de limite. Les limites viennent des programmes qui l'ouvrent, comme Excel avec 1 048 576 lignes par feuille ou un écran d'import avec son propre maximum.

Puis-je diviser un fichier CSV sans Excel ?

Oui. L'outil de cette page fonctionne dans n'importe quel navigateur récent sous Windows, Mac, Linux ou sur téléphone, sans Excel ni programme à installer.

Mon CSV est-il envoyé en ligne quand je le divise ici ?

Non. Le fichier est lu et divisé dans votre navigateur, et les parties sont créées sur votre appareil. Rien n'est envoyé à un serveur.

La division modifie-t-elle mes nombres ou les zéros initiaux ?

Non. Les parties CSV contiennent les valeurs exactement telles qu'elles étaient. Ce n'est qu'en enregistrant en Excel que les nombres sont stockés comme nombres, et les colonnes avec zéros initiaux restent quand même du texte.

Puis-je réassembler les parties plus tard ?

Oui. Ouvrez la page Fusionner des fichiers CSV du même outil, ajoutez les parties dans l'ordre et cliquez sur Fusionner les fichiers. L'en-tête est écrit une seule fois et les lignes suivent l'ordre de la liste.