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'outilPourquoi 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.
| Situation | Diviser par | Réglage type |
|---|---|---|
| Limite d'import de 10 000 lignes par fichier | Nombre de lignes | Lignes par fichier : 10000 |
| Fichier trop gros pour Excel | Nombre de lignes | Lignes par fichier : 1000000 |
| Même part pour quatre collègues | Nombre de fichiers | Nombre de fichiers : 4 |
| Un fichier par agence, ville ou fournisseur | Valeur de colonne | Colonne : Agence |
| Pièce jointe au-delà de la limite de l'e-mail | Nombre de fichiers | Assez 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.