Partager via


Présentation du format de fichier binaire Excel MS-XLS (traduction automatique)

Important

Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Résumé : Découvrez le format de fichier binaire MS-XLS utilisé dans les produits Microsoft Excel de version précédente, y compris les structures de base et les concepts fondamentaux pour interagir sur celui-ci par programmation.

Dernière modification : jeudi 23 juin 2011

S’applique à : Excel | Excel 2010 | Office 2007 | Office 2010 | SharePoint Server 2010 | VBA

Dans cet article
Vue d'ensemble du Format de fichier binaire MS XLS
Conclusion
Ressources supplémentaires

**S'applique à:**Microsoft Office Excel 2003 | Microsoft Excel 2002 | Microsoft Excel 2000 | Microsoft Excel 97

Publication :   Février 2011 | Fournie par :   Microsoft Corporation

Sommaire

  • Vue d'ensemble du Format de fichier binaire MS XLS

  • Composants clés du Format de fichier XLS de MS

  • Extraction de données à partir de fichiers Excel

  • Conclusion

  • Ressources supplémentaires

Cet article décrit les structures et des procédures permettant de travailler avec les fichiers MS-XLS. Il s'agit de la partie d'une série d'articles qui présentent les formats de fichier binaire utilisés par les produits de Microsoft Office. Ces articles sont conçus pour être utilisé en conjonction avec le Office File Format Documents disponible sur MSDN.

Vue d'ensemble du Format de fichier binaire MS XLS

Le format de fichier binaire MS XLS est utilisé par Microsoft OfficeExcel 2003 Microsoft Excel 2002, Microsoft Excel 2000 et Microsoft Excel 97. Le format est organisé en flux et sous-flux. Chaque feuille de calcul est stockée dans son propre sous-flux. Toutes les données est contenue dans les enregistrements d'en-têtes, qui permettent le type d'enregistrement et la longueur. Enregistrements de cellules qui contiennent les données réelles de la cellule ainsi que les formules et les propriétés de cellule, résident dans la table de la cellule. Les valeurs de chaîne ne sont pas stockés dans l'enregistrement de la cellule, mais dans un tableau de chaînes partagée, qui fait référence à l'enregistrement de la cellule. Les enregistrements de ligne contiennent des informations de propriété pour les emplacements de lignes et de cellules. Uniquement les cellules qui contiennent des données ou la mise en forme individuels sont stockés dans le sous-flux.

Microsoft Office Excel 2007 utilise le MS-XLSB binary file format. Ce format est semblable à MS-XLS, mais n'est pas explicitement abordé dans cet article.

Composants clés du Format de fichier XLS de MS

Le format de fichier XLS de MS contient des flux, sous-flux et records. Tous les enregistrements dans un document MS XLS commencent par un entier non signé de 2 octets pour spécifier le type d'enregistrement et une autre taille de l'enregistrement. Un enregistrement ne doit pas dépasser 8224 octets. Si les données d'à que l'enregistrement s'applique sont supérieurs à celle, le reste est stocké dans un ou plusieurs continue records.

Voici le flux principales, les sous-flux et les enregistrements dans un fichier au format MS XLS.

  • flux de Workbook

    Le flux de Workbook est le principal flux dans un fichier .xls. Il contient plusieurs sous-flux, chacun d'eux commence par un enregistrement de début de fichier (BOF) et se termine par un enregistrement de la fin du fichier (EOF). Le premier flux est toujours le sous-flux Globals et les autres sont sous-flux de sheet. Inclure les feuilles de calcul, feuilles de macro, les feuilles de graphique, feuilles de dialogue et feuilles de module VBA.

  • sous-flux de Globals

    Le sous-flux Globals spécifie les propriétés globales et les données dans un classeur. Il comprend également un enregistrement de BoundSheet8 pour chaque sous-flux dans le flux de Workbook.

    • enregistrement de BoundSheet8

      Un enregistrement BoundSheet8 donne des informations sur un sous-flux de feuille. Cela inclut le nom, emplacement, type et la visibilité. Les quatre premiers octets de l'enregistrement, la FilePointer lbPlyPos, spécifie la position dans le flux de Workbook où commence à sous-flux de la feuille.

  • sous-flux de Worksheet

    Le sous-flux Worksheet spécifie une feuille dans un classeur.

    • Cell Table

      La table de la cellule est la partie d'un flux de feuille dans lequel les cellules sont stockées. Il contient une série de blocs de ligne, dont chacun a une capacité de 32 lignes de cellules et sont remplis de manière séquentielle. Chaque bloc de lignes débute par une série d'enregistrements Row , suivie par les cellules dans les lignes, et se termine par un enregistrement de DBCell, qui donne l'offset de début de la première cellule de chaque ligne dans le bloc.

    • enregistrement de Row

      Un enregistrement Row définit une ligne dans une feuille. Il s'agit d'une structure complexe, mais seuls les 6 premiers octets sont nécessaires pour l'extraction de contenu de base. Ces éléments permettent l'index de ligne et les colonnes des cellules de premier et derniers cellules qui contiennent des données ou la mise en forme unique de la ligne.

    • Cellules

      Toutes les cellules dans un bloc de lignes sont stockées après la dernière ligne du bloc. Il existe sept types d'enregistrements qui représentent les cellules dans une feuille de calcul. La plupart des enregistrements de cellule commencent par une structure Cell de 6 octets. Les deux premiers de ces octets spécifier la ligne, les deux octets suivants spécifier la colonne et les 2 derniers octets spécifier un enregistrement de XF dans le sous-flux Globals qui contient des informations de mise en forme.

      Les enregistrements suivants représentent les différents types de cellules. Sauf indication contraire, les 6 premiers octets sont pris en charge par la structure de la cellule et les octets restants contiennent la valeur.

      • enregistrement de cellule Blank

        Un enregistrement de la cellule Blank spécifie une cellule vide qui ne possède aucune formule ou la valeur. Ce type d'enregistrement est utilisé uniquement pour les cellules qui contiennent une mise en forme individuelle ; dans le cas contraire, les cellules vides sont stockées dans les enregistrements de MulBlank ou pas du tout.

      • enregistrement de cellule RK

        Un enregistrement de la cellule RK contient un nombre 32 bits. Excel convertit automatiquement les numéros qui peuvent être représenté en 32 bits ou moins à ce format pour le stockage comme un moyen de réduire la taille du fichier. Au lieu d'une structure de la cellule de 6 octets, les deux premiers octets spécifier la ligne et les octets 2 indiquez la colonne. Les 6 octets restants définissent le nombre dans une structure RkRec pour l'optimisation de disque et la mémoire.

      • enregistrement de cellule BoolErr

        Un enregistrement de la cellule BoolErr contient une structure Bes de 2 octets qui peut être une valeur booléenne ou un code d'erreur.

      • enregistrement de cellule Number

        Un enregistrement de la cellule Number contient un nombre à virgule flottante de 64 bits.

      • enregistrement de cellule LabelSst

        Un enregistrement de la cellule LabelSst contient un entier de 4 octets qui spécifie une chaîne dans la Table de chaînes partagé (SST). Plus précisément, l'entier correspond à l'index de tableau dans le champ RVB de la SST.

      • enregistrement de cellule Formula

        Un enregistrement de la cellule Formula contient la formule et les données résultantes. La valeur affichée dans la cellule est définie dans une structure de FormulaValue dans les 8 octets qui suivent la structure de la cellule. Les 6 octets suivants peuvent être ignorées, et le reste de l'enregistrement est une structure CellParsedFormula qui contient la formule elle-même.

      • enregistrement de MulBlank

        Un enregistrement MulBlank spécifie une série de cellules vides dans une ligne.

        Les deux premiers octets offrent la ligne, tandis que les deux octets suivants la colonne commençant à la série de cellules vides. Ensuite, un tableau de longueur variable de structures de cell suit pour stocker les informations de mise en forme et les 2 derniers octets afficher quelle colonne de la série des extrémités des espaces vides sur.

      • enregistrement de MulRK

        Un enregistrement MulRk ressemble à un enregistrement de MulBlank, mais au lieu de cellules vides, un enregistrement de MulRk se compose de RK des données dans des structures RkRec.

    • Shared String Table (SST)

      La Table de chaîne partagée (SST) contient toutes les valeurs de chaîne dans le classeur. Ces valeurs sont référencés dans la feuille de calcul par LabelSst des enregistrements de cellule. Les 8 premiers octets de la SST donne le nombre de références à des chaînes dans le classeur et le nombre de valeurs de chaîne unique dans le SST. Le reste est un tableau de structures XLUnicodeRichExtendedString qui contiennent les chaînes eux-mêmes comme des tableaux de caractères. Bit 16 de cette structure Spécifie si les caractères sont de 1 octet ou 2 octets. Vous pouvez étendre la structure SST et la structure de XLUnicodeRichExtendedString en utilisant des enregistrements de Continue si le numéro ou la longueur des chaînes dépasse leurs limites.

Extraction de données à partir de fichiers Excel

Tous les contenus de fichier de format MS XLS vit dans la feuille de sous-flux. Bien que vous pourriez charger chaque sous-flux de feuille sans discrimination, vous bénéficiez plus de contrôle et d'efficacité à l'aide d'enregistrements BoundSheet8 pour localiser les feuilles à lire. La procédure suivante montre comment accéder à toutes les données à partir d'une feuille de calcul.

Notes

L'analyse des formules et des informations de mise en forme sont abordée dans cet article.

Pour lire le contenu d'une feuille de calcul Excel

  1. Créer une structure de données interne pour stocker le contenu de la feuille de calcul.

  2. Définir des objets à représenter chacun des huit cellule types d'enregistrement dans la mémoire.

  3. Ouvrir le flux de Workbook et les analyse pour la première instance d'un enregistrement de BOF. C'est le début de la sous-flux Globals.

  4. Lisez le sous-flux Globals, chargement en mémoire des enregistrements BoundSheet8 et le SST. Pour plus d'informations, consultez Globals.

  5. À partir de l'enregistrement de BoundSheet8 qui correspond à la sous-flux à ouvrir, lire les 4 premiers octets, qui contient le FilePointer lbPlyPos.

  6. Accédez à l'offset dans le flux de données spécifié par la FilePointer lbPlyPos. Il s'agit de l'enregistrement de BOF de la feuille de calcul.

  7. Lire l'enregistrement suivant dans la sous-flux, qui est l'enregistrement de Index, et le tableau des pointeurs qui démarre à l'octet 16 de l'enregistrement de Index de charge. Chaque pointeur désigne la position du flux d'un enregistrement de DBCell.

  8. Pour chaque pointeur dans le tableau :

    • Lire l'enregistrement de DBCell correspondant.

    • Accédez à l'offset spécifié par les 5 et 6 octets de l'enregistrement de DBCell et mise en mémoire tous les enregistrements de cellule, commençant à ce point et en terminant par le dernier octet avant la DBCell.

    • Copier les enregistrements de la cellule pour les objets que vous avez définis dans votre structure de données interne par type d'enregistrement.

    • Analyser les données de la cellule.

Conclusion

Il s'agit simplement d'un échantillonnage du format de fichier XLS de MS. En utilisant les outils fournis dans cet article, la récupération de données simple doit être à votre portée. Avec supplémentaires d'exploration, vous pouvez démarrer pour récupérer les formules, les informations de mise en forme et autres métadonnées. Et, finalement, même sauvegarder les opérations devenue possibles.

Ressources supplémentaires

Pour plus d’informations, consultez les ressources suivantes :

Notes

Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.