Les fichiers Excel binaires : xlsb

Jean-Philippe ANDRÉ

Alors que depuis la version d'Office 2007, la plupart des utilisateurs et développeurs ne manipulent que des fichiers avec ou sans macros (xlsx ou xlsm), il me semble intéressant de leur proposer un autre choix qui pourrait leur permettre d'améliorer les performances, les tailles et le stockage de données : le format binaire xlsb. Commentez

- Titre : Les fichiers Excel binaires : xlsb

- Auteur : Jean-Philippe ANDRÉ

- Parution : 15 mars 2015

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2015 Jean-Philippe ANDRÉ. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Sommaire

- I. Les formats de fichiers Excel

- I-A. Avant Excel 2007

- I-A-i. xls

- I-B. Depuis Excel 2007

- I-B-i. xlsx

- I-B-ii. xlsm

- I-C. Autres formats de fichiers

- I-C-i. xlt,xltx,xltm

- I-C-ii. xla,xlam

- I-C-iii. xlb

- I-C-iv. xll

- I-C-v. xlw

- II. Spécificités techniques du format xlsb

- III. Comparatif du format xlsb vs. xls / xlsx / xlsm

- III-A. Taille des fichiers

- III-B. Limites des contenus

- IV. Conclusions

- V. Remerciements

- VI. Webographie

I - Les formats de fichiers Excel

On peut considérer l'évolution récente des fichiers Excel en deux étapes principales : il y en a une avant et une après Excel 2007.

I-A - Avant Excel 2007

I-A-i - xls

.xls est l'extension historique des fichiers Microsoft Excel. Ce format a désormais pour nom officiel « Classeur Microsoft Excel 97-2003 ». Ce type de fichier a eu plusieurs caractéristiques de tailles possibles au cours du temps :

- jusqu'à la version 95 (Office 7.0) : 16 384 lignes sur 256 colonnes (2^14 x 2^8);

- jusqu'à la version 2003 (Office 11.0) : 65 536 lignes sur 256 colonnes (2^16 x 2^8).

De part cette extension, il est impossible a priori de savoir si le fichier Excel comporte ou non du code VBA qui pourrait s'auto-exécuter à l'ouverture (procédure Workbook_Open()). Cette difficulté à savoir par avance ce que peut contenir un fichier Excel a débouché à partir de la version 2007 sur plusieurs extensions plus spécifiques.

I-B - Depuis Excel 2007

I-B-i - xlsx

.xlsx est l'extension des fichiers Excel depuis 2007 sans macro. Il est au format Office Open XML (ou OOXML, norme ISO/CEI 29500). Ce format de fichier ayant pour nom actuel (avril 2015) « Classeur Excel » comporte désormais 1 048 576 lignes par 16 384 colonnes (2^20x2^14, soit 17 179 869 184 cellules - plus de 17 milliards de cellules -).

I-B-ii - xlsm

.xlsm est l'extension des fichiers Excel depuis 2007 avec macros. Également au format Open XML, il présente les mêmes caractéristiques que le fichier d'extension .xlsx. Les macros sont directement incorporées dans le fichier.

I-C - Autres formats de fichiers

I-C-i - xlt,xltx,xltm

Les extensions .xlt, .xltx et .xltm sont dédiées aux fichiers modèles d'Excel. De la même façon que pour les fichiers .xls, les extensions .xltx et .xltm servent respectivement aux fichiers modèles depuis 2007 sans macro et avec macro.

I-C-ii - xla,xlam

Les extensions .xla et .xlam concernent les fichiers de macros complémentaires (a pour add-in). L'extension .xlax n'existe pas, car de par la nature même de ces fichiers, ils contiennent obligatoirement des macros. La version .xlam existe depuis la version Excel 2007.

I-C-iii - xlb

L'extension .xlb est utilisée pour les fichiers de configuration, notamment pour les barres d'outils et barres de commandes. Ces paramètres sont modifiables et permettent de savoir quelles barres sont visibles, leurs positions et leurs fonctions.

I-C-iv - xll

L'extension .xll est utilisée pour les bibliothèques dll spécifiques à Excel. Elle est utilisée lors du développement dans d'autres langages que le VBA (notamment le C++ ou le C# voire le VB.Net). Un fichier ayant cette extension est dit compilé, c'est-à-dire qu'il n'est pas possible d'accéder directement au code qui s'exécute.

I-C-v - xlw

L'extension .xlw permet d'ouvrir un ou plusieurs classeurs d'un seul coup. Le w vient du mot anglais Workspace - espace de travail. Le fichier xlw ne contient pas les données des classeurs, il contient uniquement l'enveloppe des classeurs. De plus, vous devez avoir accès à l'intégralité des classeurs contenus dans le fichier xlw pour pouvoir l'ouvrir correctement.

II - Spécificités techniques du format xlsb

Les fichiers au format xlsb ont les mêmes capacités que les autres formats xlsx et xlsm. Attention toutefois de bien prendre en compte l'absence de compatibilité Office Open XML, qui empêchera la lecture dans certains cas de figure, et ne permet plus d'utiliser notamment les rubans dynamiques.

III - Comparatif du format xlsb vs. xls / xlsx / xlsm

III-A - Taille des fichiers

En partant d'un fichier d'extension .xls qui contient des données, des formules, des graphiques et potentiellement des macros, voici les différentes tailles de fichiers constatées après l'enregistrement dans les autres formats :

Taille en Mo

Format xls

Format xlsx

Format xlsm

Format xlsb

Données, formules, graphiques, sans macro

262

88.2

88.2

17.4

Données, formules, graphiques, avec macro

212

Impossible

55.8

38

On peut donc constater que la taille du fichier diminue fortement en utilisant le format xlsb. Vous aurez également remarqué qu'un classeur sans macro d'extension xlsx ou xlsm a exactement la même taille. Les différences de taille sont expliquées par le fait que les informations ne sont pas exactement stockées sous la même forme, voir les liens dans la webographie.

III-B - Limites des contenus

Les trois extensions les plus récentes (.xlsx, .xlsm et .xlsb) ont la même capacité de stockage des données (2^20x2^14) ainsi que les graphes et formules. Toutes ont la possibilité d'avoir un ruban personnalisé. Néanmoins, de par le caractère non XLM du fichier .xlsb, celui-ci ne permet pas de modifier le ruban. La seule solution serait de basculer le fichier .xlsb en .xlsm, de mettre à jour le ruban et de repasser en .xlsb. Enfin, l'incompatibilité XML du format xlsb peut poser des problèmes dans le cadre d'interactions avec les serveurs web par exemple.
À noter également que les macros sont parfaitement supportées sous xlsb et qu'enfin, une formule de plus de 8 192 caractères peut être enregistrée correctement avec ce format.

IV - Conclusions

On a donc pu mettre en avant, dans le cadre de ces tests, le gain de taille du fichier, sa capacité identique pour stocker les informations, les graphiques ou les macros lorsqu'il y en a.
Pour les utilisateurs qui manipulent des fichiers de grande taille, dont la compatibilité XML n'est pas requise, et pour lesquels aucun ruban personnalisé n'est à compter, le format xlsb est la solution la plus performante à adopter !

V - Remerciements

Je tiens à remercier l'équipe de Developpez.com pour la qualité du site, malick pour la relecture de cet article, et tous ceux qui contribuent à l'entraide autour du développement dans le cadre personnel et professionnel.

VI - Webographie

Quelques liens expliquant notamment les différences de poids de fichiers : New Binary File Format for Spreadsheets et Office 2007 .bin file format