Ouvrir un très gros fichier CSV

Voyez ce qu’il y a dans un CSV que rien n’ouvre, et tirez-en une tranche exploitable.

Traité sur cet appareil · aucun envoi de fichier

CSVTSVTXTVous pouvez aussi coller du texte ou un fichier (Ctrl+V)Confortable jusqu’à plusieurs gigaoctets

39 ko à télécharger la première fois, puis conservé sur cet appareil.détails

Moteur : Papa Parse.

À quoi sert cette page

Un export de deux gigaoctets, et rien ne l’ouvre : Excel s’arrête à 1 048 576 lignes, l’éditeur de texte tente de tout charger et fige la machine, l’aperçu ne montre que les premiers octets. Avant de traiter ce fichier, il faut savoir ce qu’il contient : combien de lignes exactement, quelles colonnes, quel séparateur, quel encodage. Cette page le lit par petits morceaux dans votre navigateur, sans jamais le charger entièrement, et vous rend sa fiche d’identité complète plus la tranche de lignes que vous demandez.

On dit aussi : csv trop gros pour excel, fichier d'un million de lignes.

Comment faire

  1. Déposez le fichier CSV, même s’il pèse plusieurs gigaoctets.
  2. Indiquez la tranche de lignes et, si besoin, les colonnes qui vous intéressent.
  3. Lancez : vous obtenez la fiche du fichier et un extrait ouvrable dans un tableur.

Questions fréquentes

Le fichier est-il chargé en mémoire ?

Non, et c’est tout l’intérêt. Il est lu par tranches de quatre mégaoctets, découpées à une fin de ligne pour ne jamais couper une cellule en deux. À aucun moment le navigateur ne détient plus qu’une tranche, les compteurs par colonne et l’extrait demandé.

Le nombre de lignes est-il exact ?

Oui : le fichier est parcouru en entier, en tenant compte des sauts de ligne à l’intérieur des cellules entre guillemets — ceux qui font compter faux à un simple wc -l. C’est la raison pour laquelle un très gros fichier prend quelques secondes.

Pourquoi ne pas afficher le tableau directement dans la page ?

Parce qu’un tableau de plusieurs millions de lignes dans un navigateur est un piège : ou bien il charge tout et l’onglet meurt, ou bien il n’affiche qu’une fenêtre et ne vous apprend rien de plus que la fiche. Le fichier produit ici s’ouvre, lui, dans le tableur que vous avez déjà.

Comment extraire les lignes 500 000 à 510 000 ?

Mettez 500 000 comme première ligne et 10 000 comme nombre de lignes. L’en-tête est toujours recopié en tête de l’extrait : le fichier obtenu s’ouvre seul, avec ses noms de colonnes.

Et ensuite, comment traiter le fichier entier ?

Une fois que vous savez ce qu’il contient, les outils voisins prennent le relais : découper le CSV en morceaux d’égale taille, filtrer les lignes utiles, ou écrire une requête SQL si le calcul est plus riche. La fiche vous donne les noms de colonnes exacts à leur fournir.

Bon à savoir

  • Le fichier n’est jamais chargé en entier : il est lu par tranches de quatre mégaoctets, et seuls la tranche courante, les compteurs et l’extrait demandé occupent la mémoire. C’est ce qui permet de traiter un fichier plus gros que la mémoire de la machine.
  • Le nombre de lignes annoncé est exact, pas estimé : le fichier est parcouru d’un bout à l’autre. Comptez environ une seconde par centaine de mégaoctets, davantage sur un disque lent.
  • Cette page ne montre pas un tableau à l’écran : elle produit une fiche d’identité en texte et un extrait en CSV. Afficher deux gigaoctets dans un navigateur n’aurait pas de sens ; en tirer une tranche ouvrable dans un tableur, si.
  • Les types de colonnes sont déduits des valeurs réellement lues, sur tout le fichier. Une colonne dont les valeurs commencent par un zéro est annoncée « code » et non « entier » : c’est exactement ce qu’un tableur abîme à l’ouverture.
  • L’encodage est détecté (UTF-8, UTF-16, Windows-1252) et la fiche le rappelle. L’extrait, lui, est toujours écrit en UTF-8 avec le repère qu’attend Excel.
  • Un fichier dont une seule ligne pèserait plusieurs mégaoctets — un JSON entier dans une cellule, par exemple — force à garder cette ligne entière en mémoire. C’est la seule limite réelle de la lecture en flux.

Outils liés