Pourquoi les mêmes données occupent-elles plus d'espace dans un fichier texte que dans un fichier Excel ?

Pourquoi les mêmes données occupent-elles plus d’espace dans un fichier texte que dans un fichier Excel ?


Source : Super User [microsoft-excel]

Le format xlsx utilisé par les versions modernes d’Excel est en fait un format compressé. C’est une archive ZIP qui contient des fichiers texte (XML) dans une structure particulière.

Si vous compressez votre fichier texte brut avec un outil de compression ZIP similaire, vous devriez obtenir des tailles de fichier comparables.

De plus, comme mentionné par Bradley Uffner et Morgen dans les commentaires, Excel dédupliquera les chaînes identiques et n’en stockera qu’un seul exemplaire. Je ne suis pas sûr des gains exacts d’une telle méthode, et cela dépendra de votre jeu de données, mais une simple compression zip vous y amènera probablement en grande partie.1

9.1.3 Paquets physiques

Chaque document Office Open XML est implémenté sous forme d’archive ZIP.

ECMA-376-1:2016

1 Mon hypothèse est que cette déduplication est plus efficace lorsque vous avez plusieurs feuilles de calcul, car la compression zip s’applique indépendamment à chaque fichier d’une archive et uniquement sur des sections limitées des données — en stockant toutes les chaînes ensemble dans un seul fichier, la compression ultérieure devrait en bénéficier. Plus concrètement, si votre format texte brut est dans un seul fichier de toute façon, il y aura probablement peu de différence.